yashiganiの英傑になるまで死ねない日記

週末はマスターバイクでハイラルを走り回ります

すごいH本読書会#10に参加した #sugoih

すごいH本読書会 in 大阪#10に参加しました.ついに10回目.なんだかんだで毎回続けられていてありがたいかぎりでございます.

今回の範囲は11章「ファンクターからアプリカティブファンクターへ」発表は@でした.資料はこちら.

アプリカティブファンクターは実装を参照しつつ,バラしてみると理解がしやすいです. ファンクターは構造を保ったまま中の値に関数を適用できるもの,アプリカティブファンクターは構造を保ったまま中の値を関数の引数に使えるもの,みたいな理解をすることにしました. あと, <*><$> の読み方にすげえ困りました.

練習問題

練習問題は@が考えてきてくれたこれをやりました.

以下でタプル作るところまではいけたけど,そっから先に困ってました.

main = do
    pair <- (,) <$> getLine <*> getLine
    print pair

何に困っていたかというと,タプル内の String をいかに Integer に変換するか. なんかHaskellで標準入力から数値をとって...ってするときは毎回これにはまってる気がする.

IRead :: String -> Int

みたいなヘルパを書けば解決しそうなのはわかってたんだけど,そんなのは型推論にやらせたいし... あーラムダ使えばいいのかって気づいて,こうなった

main1 = do
    pair <- (,) <$> getLine <*> getLine
    print $ (\(x, y) -> read x + read y) pair

けど read で型を変換してってやつもまとめて1行で書きたい.もうちょっと改良が必要. てか"たくさん作れ"って課題なのにひとつしかできてないorz

そしてビールへ

会場のブリーゼブリーゼの1Fでビアガーデンをやってたので終わってからゆるりと一杯やりました.

どういう経緯でHaskellやってるだとか,Haskellのここがいいと思うだとか終わったら2周目やるかとか色々おもしろい話ができました.

次回予告

次回は7/23で11章の残り(@)と12章モノイド(@)をやります.参加はこちらから. @は「ここでのたうちまわったので是非やらせて欲しい」と言っていたのでおもしろい話が聞けると思います. すごいH本読書会 in 大阪は全然わかってなくても興味さえあれば参加できます. というかぼく自身あんまりわかってません. 参加のハードルはとにかく低いので興味のある方は是非参加してください!楽しくHaskellしましょう!