Haskell 勉強会
社内有志による Haskell 勉強会。
↓テキストはこれ。
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
- 作者: 青木峰郎,山下伸夫
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/06/01
- メディア: 単行本
- 購入: 25人 クリック: 314回
- この商品を含むブログ (320件) を見る
第4章 Haskell の基礎 (3) モジュールと総合演習
fgrep.hs で、
fgrep :: String -> String -> String fgrep pattern cs = unlines $ filter match $ lines cs where match :: String -> Bool match line = any prefixp $ tails line prefixp :: String -> Bool prefixp line = pattern `isPrefixOf` line
が、関数合成と部分適用を使うと、
fgrep pattern = unlines . filter (match pattern) . lines match pattern = any (pattern `isPrefixOf`) . tails
と書けるとあるけれど、match がグローバルになってる点が後退している感じ。
fgrep pattern = unlines . filter match . lines where match = any (pattern `isPrefixOf`) . tails
の方が良くないかな?