给定一个应用仿函数 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)
我的问题是
Applicative
实例(它是否遵守 Applicative
法律)? 最佳答案
关于haskell - 反转效果顺序的应用仿函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34247025/