エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント1件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
bindはfmapとjoinに分解できる - Qiita
数日前に頭の中で考えてた駄文。 モナドによって性質が大きく違うことからモナドは掴みにくいものだって... 数日前に頭の中で考えてた駄文。 モナドによって性質が大きく違うことからモナドは掴みにくいものだってのはよく言われることだけど、それは各モナドのbindの特色がfmapに入っているかjoinに入っているかにも関連するのかなと思った。 例えば、ListやMaybeだと、joinは皮を剥ぐだけで面白いことは何もしてなくて、fmapにその特色が入っている。 instance Functor [] where fmap = map map :: (a -> b) -> [a] -> [b] map _ [] = [] map f (x:xs) = f x : map f xs 逆にStateやIOモナドのfmapは値を普通に関数適用するだけで背後にある状態はまったく触らない。面白いことをやっているのはjoinの方で、状態の変更を外側,内側、と順番に逐次処理する役割を担っている。 join :: (M
2015/05/27 リンク