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

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

初めてRebindableSyntaxが>>と>>=以外で役に立った。1枚目から2枚目のコードに書き換えられる

bool関数とif then elseの引数の順番は違うので気をつけよう!(今ハマった)
boolなりmaybeなりeitherなり、この手のcase式を関数にしたものは、必ず「小さい」値コンストラクター(e.g. False < True)を先に引数としてとるのを忘れるなよ!

VS CodeのRemote DevelopmentってLSPのサーバーはどっちのマシンで動くんだろう。リモート側で動くんだったら今度から出先ではそっちでやろうかね。

Bifunctor Race

Bifunctor, bifunctor, bifunctor
I want to write my bifunctor
I want to write bimap
I want to write my bifunctor
I want to apply it where I like~♪

LTのsummaryができた。exampleの紹介どちらか1つでもやりたいなあ
- Simulate bind (>>=) with IxState and keep the DSL bind-free.
- Represent reference to (the result of) an action by [Symbol]((link: hackage.haskell.org/package/ba) hackage.haskell.org/package/base-4…).
- Interpret the actions as IxState with an extensible record when executing.
- Example: Tiny DSL with interpreter with printer.
- Example: regex-applicative with capturing feature.

型エラーの導くままにパズル解いてきてなんとか解けそうだけど、なんかこう、原理原則が見えないからコンパイル通せてもわからなさそう

putStrLn <$> getLineという式をGHCiに入力しても getLine の部分しか実行されない、という現象について解説するためにえらい力を使ってしまった。
HaskellのIOの本質を知るためにはとても重要な話だけど、普通にHaskellを書くだけではそこまで重要ではない。もっと単純に出来ないものか。

興が乗って面倒なAAを書いてしまった

length <$> getLine
^^^^^^ ^^^^^^^
[Char] -> Int IO [Char]
^^^^^^ ^^^ ^^ ^^^^^^
a b m a
\ /
\ /
\_/
/\
IO Int
^^ ^^^
m b

PolyKinds, 影響範囲でかいからできれば使いたくないんだけど、KindSignaturesだけ有効にして必要なところだけa :: kみたいに書く作戦は使えないか... 結局PolyKindsを有効にしろ、と怒られる。まぁ意味を考えればしょうがないけど...

ぐあー、マジかー、indexed, PolyKinds使ってたのかー。PolyKindsになってない前提で書いたの失敗だったな...。タイプ数かなり損した気が...
github.com/reinerp/indexed/blo

先週悩んだテストが通らない問題、やっぱり凡ミスだったっぽい。よかった。先週読んだときとデバッグログが違って見えるけど、多分勘違いだろう。
単体テストにも落とし込めそう。

なぜか参照しているライブラリーの変更が反映されないという謎の挙動に苦しんだけど、stack cleanしたら直った。stack.yamlが子ディレクトリーにも入っているせいでこんがらがったのだろうか。

業務時間中に読んでわけわかんなかったコードが帰宅中に思い出してたらみるみるうちに点と点がつながり出すので帰宅時間は実質業務。

うーむ、正規表現の実装に対する理解がなくてどう変えればいいかわからないな... どこかよい資料はないものか。

YAMAMOTO Yuji : 山本悠滋 さんがブースト

型付き言語万歳!!!

Actcast beta版のアナウンスメールが迷惑メールに行ってた。かわいそうに。

ようやく公開できました。社内勉強会をオリジナルのツールでやってるよ、という話です。
eng-blog.iij.ad.jp/archives/34

putStrLn置いたら落ちてたテストが通った。。。タイミング問題か。。。