这个功能可以实现吗?

时间:2016-10-04 22:21:23

标签: function haskell

这个功能有没有实现?

foo :: (Monad m, Monad n) => m a -> n a -> (a -> a -> a) -> m (n a)
foo x y f = ...

1 个答案:

答案 0 :(得分:12)

是的,可以给它更通用的类型。

foo :: (Functor f, Functor g) => (a -> b -> c) -> f a -> g b -> f (g c)
foo f fx gy = fmap (\x -> fmap (f x) gy) fx