Haskell多线互动模式

PyR*_*lez 0 ide haskell ghci

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

>>> if (a==5):
      print "Yes"
else:
      print "No"
Run Code Online (Sandbox Code Playgroud)

但是在haskell的GHCi中:

Prelude> do

<interactive>:2:1: Empty 'do' block
Run Code Online (Sandbox Code Playgroud)

这是行不通的.是否有任何IDE允许您以交互模式执行多行命令.

注意:我知道:{和:}命令,但您输入后无法编辑上面的行.

kqr*_*kqr 5

输入

Prelude> :set +m
Prelude> do
Prelude|   x <- getLine
Prelude|   putStrLn $ "yay: " ++ x
Prelude|
hi!
yay: hi!
Run Code Online (Sandbox Code Playgroud)

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

如果您没有进入命令行编辑器,您可以查看一些实际的Haskell IDE.我知道FP Complete有一个基于网络的版本,可以免费用于教育目的.在Haskell中也有一些尝试构建IDE.