2011年12月13日火曜日

Applicative, ApplicativeBuilder

#expertpython に行く予定でしたが池袋駅で目黒へ行くお金すらなかったことに気づいて泣く泣く帰ることに・・・・・
鬱々ですが明日も頑張ります。

今日はApplicative。

Applicative

ApplicativeはApplyとPointedを継承します。
基本的にApplyはFunctorや、Pureと組み合わせて使うのでApplicativeのインスタンスであるといろいろな関数が使えるようになります。


Pointed

FunctorとPureを継承しています。
Applicative, Monadがこれを継承します。

Applicativeスタイル

forでは


と書けますが、Applicativeスタイルでは


と書けます。

この書き方では、関数がカリー化されている必要があります。
<**>, <***>, <****>, <*****>を使うとカリー化の必要がなくなり、適用の順番が綺麗に書けます。



ApplicativeBuilder

これらの書き方以外にApplicativeBuilderを使ったものがあります。


このようにApplicativeは値をコンテナから取り出して関数にてきようするものです。
for yieldであの形になったのなら、Applicativeスタイルで書けるということをおぼえておけばいいのだと思います。

0 件のコメント:

コメントを投稿