Haskell多线互动模式

时间:2013-12-03 22:05:59

标签: haskell ide ghci

在python中,有许多IDE可以让你这样做。

>>> if (a==5):
      print "Yes"
else:
      print "No"

但是在haskell的GHCi中:

Prelude> do

<interactive>:2:1: Empty 'do' block

它不起作用。是否有任何IDE允许您以交互模式执行多行命令。

注意:我知道:{和:}命令,但您输入后无法编辑上线。

2 个答案:

答案 0 :(得分:5)

输入

Prelude> :set +m
Prelude> do
Prelude|   x <- getLine
Prelude|   putStrLn $ "yay: " ++ x
Prelude|
hi!
yay: hi!

:set +m部分支持Python中的多行输入。这与:{ :}类似,但您也无法在那里编辑上线。如果你想这样做,我建议你在文件中写入并将其加载到解释器中。 (使用正确的VimEmacs设置可以很快完成此操作。)

如果您没有加入命令行编辑器,您可以查看一些实际的Haskell IDE。我知道FP Complete有一个基于网络的,可以免费用于教育目的。 building IDEs in Haskell也有一些尝试。

答案 1 :(得分:2)

尝试ihaskell,https://github.com/gibiansky/IHaskell,这是ipython的Haskell内核。这是一个年轻的项目,而不是hackage。让我们知道它是怎么回事!