6
let x=1
    y=2
    z=3

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

4

1 回答 1

12

文档说:

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. (既然出现了这个问题,我实际上是这样做的。)

于 2013-08-10T14:48:22.557 回答