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にちょっとだけ触れられている。