Gos*_*ssJ 6 monads haskell quine
在Haskell中使用"ap"monad的正确方法是什么?我想做类似的事情:
main = (putStr . ap (++) show) "main = (putStr . ap (++) show) "
Run Code Online (Sandbox Code Playgroud)
但我收到错误"不在范围内:'ap'."
使用"import Control.Monad"什么都不做.我试过给它
"ap :: Monad m => m (a -> b) -> m a -> m b"
Run Code Online (Sandbox Code Playgroud)
然后我得到"'ap'的类型签名缺少附带的绑定"
ham*_*mar 10
导入Control.Monad
应该给你ap
.但是,除了最新版本的GHC(7.6.1和更新版本)之外,您还需要导入Control.Monad.Instances
以使用monad实例来实现功能.
或者,您可以导入Control.Applicative
为您提供概括的<*>
运算符,以及将其与函数一起使用的必要实例.ap
Applicative