[英]Applicative functor that reverses order of effects
Given an applicative functor f
, I had an idea of making a new applicative functor Rev f
like f
but with the order of effects reversed. 给定一个应用程序的函子f
,我有一个想法,就像创建一个新的应用函数Rev f
f
但效果的顺序相反。 Here it is: 这里是:
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)
My questions are 我的问题是
Applicative
instance (does it obey the Applicative
laws)? 这是一个有效的Applicative
实例(它是否遵守Applicative
法律)?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.