导入monad不起作用(泄漏haskell平台)

use*_*856 13 import monads haskell haskell-platform

由于最新的Ubuntu 13.04没有haskell-plattform,我只下载了GHCi并且直到现在都没有问题.

但现在我想和monad一起工作.用它们导入它们

import Control.Monad.State
Run Code Online (Sandbox Code Playgroud)

例如不起作用.错误消息:

Could not find module `Control.Monad.State'
Perhaps you meant
  Control.Monad.ST (from base)
  Control.Monad.ST.Safe (from base)
  Control.Monad.Fix (from base)
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)

我该如何手动下载它们,还是有完全不同的问题?

Tho*_*son 18

您需要在GHC可以找到的地方安装库.

通过Cabal安装

安装Cabal

如果您尚未安装cabal-install ,请先执行此操作.这是两种方式之一.

通过OS包装:

sudo apt-get install cabal-install
Run Code Online (Sandbox Code Playgroud)

或手动:

wget http://hackage.haskell.org/package/cabal-install-1.18.0.2/cabal-install-1.18.0.2.tar.gz
tar xzf cabal-install-1.18.0.2.tar.gz
cd cabal-install-1.18.0.2
sh ./bootstrap.sh
export PATH=$PATH:$HOME/.cabal/bin
Run Code Online (Sandbox Code Playgroud)

使用Cabal

安装完成cabal-install后,执行以下操作:

cabal update
cabal install mtl
Run Code Online (Sandbox Code Playgroud)

这是"Monad Transformer Library",其中包含许多常见的monad,例如State,您在示例中看到的.

通过OS Packaging安装

所有这些的替代方法是安装ubuntu包装mtl.也就是说,我不知道任何活跃的Haskell开发人员使用Haskell包的OS包装而不是cabal.ubuntu包是libghc-ghc-mtl-dev:

sudo apt-get install libghc-ghc-mtl-dev
Run Code Online (Sandbox Code Playgroud)