鉴于一个应用程序的仿函数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
法律)?
这个结构有名字吗?这个模块隐藏在哪里?
Daniel Wagne.. 11
IRC的友好人员指出Backwards
了该transformers
软件包提供的应用程序.您可能也喜欢(<**>)
标准库中提供的运算符.
IRC的友好人员指出Backwards
了该transformers
软件包提供的应用程序.您可能也喜欢(<**>)
标准库中提供的运算符.