Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 Haskell 中使用“ap”monad 的正确方法是什么?我想做类似的事情:
main = (putStr . ap (++) show) "main = (putStr . ap (++) show) "
但我收到错误“不在范围内:'ap'。”
使用“import Control.Monad”什么都不做。我试过给它
"ap :: Monad m => m (a -> b) -> m a -> m b"
然后我得到“'ap'的类型签名缺少伴随的绑定”
进口Control.Monad应该给你ap。但是,除了最新版本的 GHC(7.6.1 和更高版本)之外,您还需要导入Control.Monad.Instances才能使用 monad 实例来实现函数。
Control.Monad
ap
Control.Monad.Instances
或者,您可以 import Control.Applicativewhich 为您提供<*>运算符,该运算符ap泛化为Applicative,以及将其与函数一起使用的必要实例。
Control.Applicative
<*>
Applicative