drkcore

2010/02/13 16:11:40

HaskellのArrow

Arrowを学ぶ。Programming with Arrowsを読んでから、「Arrowのはなし」というニコニコ動画をみるのがわかりやすい。イメージは3番目が参考になる。

Arrowを使って奇数列を作ってみる。 0から始まる数列を&&&で分岐させて一方はそのまま戻して、もう一方はtailすることで1から始まる数列にして、合流したら足し合わせる。

Prelude Control.Arrow> let odds = (tail) &&& id >>> (uncurry (zipWith (+)))
Prelude Control.Arrow> take 10 $ odds [0,1..]
[1,3,5,7,9,11,13,15,17,19]

他、参考にしたサイト

RWHではArrowは15.4.2にちょっとだけ触れられている。

ProductName Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。

Comments