2016-10-04 4 views
4

이 기능에 대한 구현이 있습니까?이 기능을 구현할 수 있습니까?

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

'\ _ na _ -> return na' 이외에? – hao

+0

예 저는'f'를 어떻게 든 사용하는 함수를 찾고 있습니다. – drhodes

답변

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 
관련 문제