我有一个功能:
someFun :: Applicative f => f a -> b -> f c
someFun x y = …我需要给y someFun的参数是“f”,让我们说我有值
someX :: Applicative f => f a
someY :: Applicative f => f b我试着做
LiftA (someFun someX) someY但这给了我f (f c)
我需要得到一个f c
发布于 2016-09-15 01:47:42
你所要求的是一元论所能做到的,但应用程序却无法做到。对于Monad实例,这只是join
join :: Monad m => m (m a) -> m a你所要求的是不可能的,但至少现在你有了一个完美的例子,说明你能用Monad做什么,而你不能用一个应用程序。
https://stackoverflow.com/questions/39501933
复制相似问题