Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell Scotty post类型不允许使用效果_Haskell_Functional Programming_Scotty - Fatal编程技术网

Haskell Scotty post类型不允许使用效果

Haskell Scotty post类型不允许使用效果,haskell,functional-programming,scotty,Haskell,Functional Programming,Scotty,与: mailHandler=do nameWeb.Scotty.Internal.Types.ActionT.Text IO()是IO上的monad转换器。它们通常实现MonadIO类,因此您可以使用liftIO函数(从Control.Monad.IO.class,如果尚未导入)将IO操作“提升”到它们中: Couldn't match type `IO' with `Web.Scotty.Internal.Types.ActionT T.Text

与:

mailHandler=do

name
Web.Scotty.Internal.Types.ActionT.Text IO()
IO
上的monad转换器。它们通常实现
MonadIO
类,因此您可以使用
liftIO
函数(从
Control.Monad.IO.class
,如果尚未导入)将
IO
操作“提升”到它们中:

    Couldn't match type `IO'
                  with `Web.Scotty.Internal.Types.ActionT T.Text IO'
    Expected type: Web.Scotty.Internal.Types.ActionT T.Text IO ()
      Actual type: IO ()
    In a stmt of a 'do' block: renderSendMail $ forwardMail name email
    In the expression:
      do { name <- param "name";
           email <- param "email";
           renderSendMail $ forwardMail name email }
    In an equation for `mailHandler':
        mailHandler
          = do { name <- param "name";
                 email <- param "email";
                 renderSendMail $ forwardMail name email }
Failed to install server-0.0.1
cabal: Error: some packages failed to install:
server-0.0.1 failed during the building phase. The exception was:
ExitFailure 1

如果您不介意,请告诉我要安装以获取
Control.Monad.IO.Class
的cabal包的名称。如果你能解释整个monad transformer的概念,那就更好了好吧,我安装了
transformers
,事情又恢复了活力,但我还是希望能解释一下这个概念。@Freshyeball
scotty
似乎已经依赖于
transformers
,所以我怀疑这是多余的?(因为scotty定义了一个变压器本身,所以它有点像。)@Freshyeball Monad transformers是一个有点大的主题,所以我想我会在这里继续解释它,但请参见例如…@Freshyeball这篇文章:
    Couldn't match type `IO'
                  with `Web.Scotty.Internal.Types.ActionT T.Text IO'
    Expected type: Web.Scotty.Internal.Types.ActionT T.Text IO ()
      Actual type: IO ()
    In a stmt of a 'do' block: renderSendMail $ forwardMail name email
    In the expression:
      do { name <- param "name";
           email <- param "email";
           renderSendMail $ forwardMail name email }
    In an equation for `mailHandler':
        mailHandler
          = do { name <- param "name";
                 email <- param "email";
                 renderSendMail $ forwardMail name email }
Failed to install server-0.0.1
cabal: Error: some packages failed to install:
server-0.0.1 failed during the building phase. The exception was:
ExitFailure 1
liftIO . renderSendMail $ forwardMail name email