无法在GHCi中输入多行语句

时间:2013-08-10 13:36:59

标签: haskell ghci haskell-platform

let x=1
    y=2
    z=3

在GHCi中不起作用,迫使我改为使用let {x=1;y=2;y=3}。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:12)

The documentation说:

  

GHCi还有一个多线模式,启用方式为:set + m,GHCi在当前语句未完成时自动检测到,并允许添加更多行。多行输入以空行终止。

多线模式使GHCi表现得很像Python解释器:

Prelude> :set +m
Prelude> let x = 1
Prelude|     y = 2
Prelude|     z = 3
Prelude|
Prelude> (x, y, z)
(1,2,3)

这个隐藏的宝石非常适合玩可读代码!

如果您希望这是默认行为,您可以在主目录中创建一个.ghci文件,其中包含:set +m行。 (现在这个问题出现了,我实际上已经这样做了。)