由于最新的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.
如何手动下载它们,还是存在完全不同的问题?
答案 0 :(得分:18)
您需要在GHC可以找到的地方安装库。
如果您尚未安装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-install
后,请执行:
cabal update
cabal install mtl
这是“Monad Transformer Library”,其中包含您在示例中使用的许多常见monad,例如State
。
替代所有这些是安装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