这个功能可以实现吗?

drh*_*des 4 haskell function

这个功能有没有实现?

foo :: (Monad m, Monad n) => m a -> n a -> (a -> a -> a) -> m (n a)
foo x y f = ...
Run Code Online (Sandbox Code Playgroud)

Ben*_*son 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
Run Code Online (Sandbox Code Playgroud)