例如,假设我有以下功能:
foo :: Monad f => f a
bar :: Monad f => a -> f b
baz :: Monad f => a -> f c
qux :: Monad f => a -> f d
而且我只想返回qux
例如g :: Monad f => f a -> f d
whereg
调用的结果bar
以及baz
它们的副作用。
有没有一种方法可以在g
不将每个函数显式应用于结果的情况下进行构造foo
?有点类似于(&&&)
工作原理,或者(<*>)
我想。