PyR*_*lez 7 haskell terminology functor applicative
鉴于一个应用程序的仿函数f,我有一个想法,Rev f就像制作一个新的应用程序仿函数,f但效果的顺序相反.这里是:
import Control.Applicative
newtype Rev f a = Rev {unRev :: f a}
instance Functor f => Functor (Rev f) where
fmap f (Rev fx) = Rev (fmap f fx)
instance Applicative f => Applicative (Rev f) where
pure x = Rev (pure x)
(Rev ff) <*> (Rev fx) = Rev (pure (\x f -> f x) <*> fx <*> ff)
Run Code Online (Sandbox Code Playgroud)
我的问题是
Applicative实例(它是否遵守Applicative法律)?