今回は「ふつうのHaskell」p.339から13章の最後まで。つまり読み切りました!
内容は自前でパーサコンビネータライブラリを書こうというもの。
せっせと写経しながら内容を追いました。
つまったのが
- リスト13.19内nextState関数の型
- 今回書いたコードがモナド則を満たすのか
- LineParserを実装しなくてはいけないのか
モナド則に関してはなんとなくわかった感じだが言葉に還元できるほど理解できず。nextStateの型は時間内にはわからず。
LineParserは以下のようにtype宣言をします。
type LineParser a = MyParser String a
ちなみにMyParserは
data MyParser tok a = MyParser ([tok] -> Maybe (a,[tok]))
と定義しています。
課題としてtry関数を実装しようというのがあがっていたのですが、今回は理解度が足りなさすぎるのでスルーさせてもらいます。
これでふつケルは読了だなーと思って気を緩めたのですが、なんとそのあと連続で「A Gentle Introduction to Haskell, Version 98」に突入しました。 てっきり今回は総集編をやって、次回からと思っていたので心の準備がゼロでした。
そして、twitterでもつぶいていたように英語はめちゃくちゃ苦手な僕です。助けてもらいながらもなんとか音読(全員で順番に音読して訳していく学校スタイル)はしたものの訳はほとんど参加できませんでした・・・。コードがあるから良いものの、これがなければ死んでました。
次回までに英語をしっかりと勉強していきたいと思いました。