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

时间:2013-11-24 17:25:30

标签: haskell import monads haskell-platform

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

但现在我想和monad一起工作。用

导入它们
import Control.Monad.State
例如

不起作用。错误消息:

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.

如何手动下载它们,还是存在完全不同的问题?

2 个答案:

答案 0 :(得分:18)

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

通过Cabal安装

安装Cabal

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

通过OS Packaging:

sudo apt-get install cabal-install

或手动:

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

使用Cabal

安装cabal-install后,请执行:

cabal update
cabal install mtl

这是“Monad Transformer Library”,其中包含您在示例中使用的许多常见monad,例如State

通过OS Packaging

安装

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

sudo apt-get install libghc-ghc-mtl-dev

答案 1 :(得分:0)

使用堆栈

如果您使用的是Stack,则可以通过将=IF(ROWS(M$2:M2)>$I$6; ""; INDEX(source[Name]; AGGREGATE(15; 6; (ROW(source[Name])-ROW(source[#Headers]))/SIGN((($I$2="No Selection")+(source[Location]=$I$2))*(($I$3="No Selection")+(source[Function]=$I$3))); ROWS(M$2:M2)))) 添加到transformers的依赖项中来获得monad transformer library

package.yml