YAMAMOTO Yuji : 山本悠滋 さんはインスタンス qiitadon.com のユーザーです。アカウントさえ持っていればフォローしたり会話したりできます。 もしお持ちでないなら こちら からサインアップできます。

YAMAMOTO Yuji : 山本悠滋 @igrep@qiitadon.com

haskell.jp/blog/posts/2017/typ の話とか、GHCでスタックトレースをとる方法とかで盛り上がった。

PandocをきっかけにHaskellを始めた、という人を見つけた。やっぱPandoc偉大や。

以前にcomposableなscaffoldingツールを作れないか、みたいな議論を知人として、今更思いついたんだけど、gitのコミット、あるいはパッチをテンプレートに基づいて自動で作って適用する何かがあればいいんだろうか。すでにないかしら。

RSpecを初心者の皆さんも使っているのかと思うと恐ろしいな。。。あそこまで学習コストが高くてしかも異様に細かくスタイルが分かれたテスティングフレームワークもないぞ...

はぁ... ダメ、今日は全然だ... やっぱ昨日寝付きが悪かったからか。勉強会でヒートアップすると眠れなくなるの、先週のYokohama.rbでもそうだったよなぁ...

くそう、変数名末尾の ' の有無を間違えてこんなにハマるとは... こんな名前をつけざるを得ない状況になったことを悔いたい。やはりHspecの限界が絡んでいそうなので新しいテスティングフレームワークを作ればいいんだろうか。

メモ: 昨日考えてて眠れなかったこと:
IxAlternativeがなんでindexedパッケージにないかよくわかった。someとmanyについて、単純に型を定義することができない。少なくともHaskell 98(2010も?)の範囲では無理。TypeFamiliesとか使ってやるしかなさそう。それが本当にIxAlternativeと呼べるかはさておき

もちろん、もともと :! を使えば任意のコマンドを呼べるのは知ってる。あくまでもショートカットとして。

GHCi上でgitを呼べるようにした。

:def g (\arg -> System.Process.callCommand ("git -c color.status=always " ++ arg) >> return "")

vimのターミナル機能は必ずターミナル一つにwindowを割り当てないといけないので、ghciしか開きたくない!という時はちょっと役立つ。

キャプチャーしている部分がマッチしなかったときのデフォルト値作る関数を Rep 値コンストラクターに含めればいいのか。本当は | についても同じ扱いが必要なんだろうけどもそっちはさすがに難しいし今回はあきらめるか...
まぁ本当に regex-applicativeでキャプチャーが本当に必要になる場面なんて希だろうし...

("aabac").match(/(..)*/) // => [ "aaba", "ba" ]
("d").match(/d(..)*/) // => [ "d", undefined ]

正規表現の繰り返しの中でcaptureを使った場合、captureした結果がからになる場合を考慮する必要があるのかぁ。そりゃそうだけど型にエンコードするのめんどくさいなこれ...

>=と<=については、≧と≦の書き順がそうなっているから、と覚えてます。顔文字っぽい。

去年に引き続いて今年も私はindexed monadおじさんと名乗れそうなくらいindexed monad触ってる気がする。
正確には今触ってるのはindexed applicativeだけど。

一つのパッケージに実行ファイル複数にしてしまったのは失敗だった。ビルド時にリンクに時間かかるしインストールも煩雑になるし。

twitter.com/igrep/status/11510 この話で突っ込んできた当人の某パッケージもHome pageが404になってた😅

userテーブルはまだしも、Userって名前のクラスはあっという間に責務過多になりそうで怖い怖い。

やっぱ2のn乗回回るループというのを再帰使わないで表現する頭が足りない。

monorepo, 理屈はわかるんだけどやっぱ現状のgitがうまくサポートするように作られてないからつらい。総じてツールのサポートが足りない。

exampleも足して、文芸プログラミングよろしく実行できるような仕組みをささっと作ったけど、素直にmarkdown-unlitを使うべきだったかしら。

「cabalファイルに書いてあるURLが間違ってるし全然ドキュメント書いてねぇじゃねぇか!」と見知らぬ方から突っ込まれたので慌てて hackage.haskell.org/package/fa に詳細なREADMEを付け足すなどした。
まさか私のパッケージを見つけてくれるとは。