RWH 読書会 2010-01
また、参加させてもらいました。
Real World Haskell―実戦で学ぶ関数型言語プログラミング
- 作者: Bryan O'Sullivan,John Goerzen,Don Stewart,山下伸夫,伊東勝利,株式会社タイムインターメディア
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/10/26
- メディア: 大型本
- 購入: 8人 クリック: 245回
- この商品を含むブログ (76件) を見る
とりあえず、メモだけ貼付けます。
- 5分ほど遅れていったら cut-sea さんしかいないお
- 1時間くらいして nobsun 登場
- センター試験の試験官をされてたそうな
- どこまでやったっけ? でしばらく悩むw
- 多分、10月やったのが最後
- とりあえず、9章から始めてみる
9章 入出力事例研究: ファイルシステム検索ライブラリ
9.2 ディレクトリの再帰的リストアップ
- forM :: (Monad m) => [a] -> (a -> m b) -> m [b]
- mapM の引数を逆にしたもの
- 9.2.2 なぜ mapM と forM の両方が用意されているのか
- 処理のほうが長いかリストの方が長いか
9.3 素朴な検索関数
- を実装してみせてから、問題点を列挙して、あとにつづける
- 「sinpleFind は正格」ってどういうこと?
- unsafeInterleaveIO でいいよね by shelarcy さん
- 「sinpleFind は正格」ってどういうこと?
9.4 述語: 純粋性を保ちつつ、貧弱な機能から充実した機能へ
- ファイル名しか見ていない問題
- System.Directory モジュール
- filterM :: (Monad m) => (a -> m Bool) -> [a] -> m [a]
- 純粋な述語 p を入出力をうけもつ check でラップして、filterM でフィルタする
9.5 ファイルサイズを安全に決める
- hFileSize をラップ
- handle って前に出てたっけ?
- 例外を投げられると hClose が呼ばれない問題
- 9.5.1 獲得-使用-解放サイクル
- bracket :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c
9.6 述語用の特定問題領域言語 (DSL)
- うまく、まとめられない…
- 9.6.1 持ち上げを使ってボイラープレートを回避する
- 持ち上げ?
(>) のような関数をとって、その関数を別の文脈で作用する関数 (ここでは greaterP) に変換することを、その文脈に持ち上げると言います。
- 9.6.2 述語を貼りあわせる
- コンビネータ
- ??
liftP q f k w x y z = f w x y z `q` k liftP2 q f g w x y z = f w x y z `q` g w x y z liftP' q f k w x y z = f w x y z `q` (constP k) w x y z
- 9.6.3 新しい演算子を定義して使う
9.7 走査方法の制御
- 書いてある通り「いままでない濃い関数定義」
- ><
- 急に難易度が上がったなぁ…。by nobsun
9.8 密度、可読性、学習プロセス
- この節のコードを 9.7 のと比べてみればいいんだな
9.9 走査の別の見方
9.10
- 特になし
- 9.10.1 よく使われるレイアウトスタイル
- やっぱりこういう話題はもりあがるw
懇親会、その他
- tantanmenbot を紹介した。
- shelarcy さんの連載、もう少しがんばって読みます…。