Haskell/Applicative functors - Wikibooks, open books for an open world
「すごいHaskellたのしく学ぼう!」 11章のまとめ · GitHub
アプリカティブ則のHaskellだとこうなるらしいよ。
pure id <*> v = v -- Identity pure f <*> pure x = pure (f x) -- Homomorphism u <*> pure y = pure ($ y) <*> u -- Interchange pure (.) <*> u <*> v <*> w = u <*> (v <*> w) -- Composition
1番目。
Prelude Control.Applicative> -- pure id <*> v = v Prelude Control.Applicative> [1,2,3] [1,2,3] Prelude Control.Applicative> pure id <*> [1,2,3] [1,2,3]
2番め。
Prelude Control.Applicative> pure sum <*> pure [1,2,3] 6 Prelude Control.Applicative> pure (sum [1,2,3]) 6
3番目。
Prelude Control.Applicative> [] <*> pure [1,2,3] [] Prelude Control.Applicative> pure ($ [1,2,3]) <*> [] []
4番目がよくわからない。