【发布时间】:2017-07-08 08:30:17
【问题描述】:
好的,所以这是一个奇怪的。
这很好用:
test = do
x <- [1..5]
y <- [1..5]
[x+y, x-y]
但是这个:
test = do
x <- [1..5]
y <- [1..5]
[
x+y,
x-y
]
惨败。 GHC 完全拒绝解析这个。无论我如何坐立不安,我似乎都无法说服 GHC 允许我将列表分布在多行中。这是个问题,因为如果你用真正的 big 表达式替换 x+y 和 x-y,它很快就会变得难以阅读......
有人知道为什么这不起作用,我该如何强制它起作用? (或者至少做一些看起来清晰的事情?)
【问题讨论】:
-
总是使用显式大括号和分号的另一个例子(尤其是在教材中)。
-
如果您的表达式非常大,请使用
let表达式为其定义临时名称。
标签: list haskell syntax monads do-notation