Elm 它看起来像关键字“quot;在;用作变量

Elm 它看起来像关键字“quot;在;用作变量,elm,Elm,粘贴以下代码并单击“编译”: 导致意外错误: 在1个模块中检测到错误。 --语法问题------------------------------------------- 看起来中的关键字被用作变量 (0,0,0)[1,2,3,4,5]英寸 ^ 将其重命名为其他名称 这里怎么了?括号匹配。缩进在Elm中很重要,并且右括号太左(倒数第二行)。将其更改为此将是有效代码(另外,它是List.foldl,而不是foldl): 将in语句中的放在自己的行中,与let对齐,可能更为惯用,只是为了保持清楚:

粘贴以下代码并单击“编译”:

导致意外错误:

在1个模块中检测到错误。
--语法问题-------------------------------------------

看起来中的关键字
被用作变量

(0,0,0)[1,2,3,4,5]英寸
^
将其重命名为其他名称


这里怎么了?括号匹配。

缩进在Elm中很重要,并且右括号太左(倒数第二行)。将其更改为此将是有效代码(另外,它是
List.foldl
,而不是
foldl
):

in
语句中的
放在自己的行中,与
let
对齐,可能更为惯用,只是为了保持清楚:

main =
  let (x, y, _) = List.foldl (\elem (sum, diff, mult) ->
      (sum + elem, elem - diff, mult * elem)
      ) (0, 0, 0) [1, 2, 3, 4, 5]
  in
  text ("Hello, World!" ++ toString x)

您还可以在编辑过程中加入,以便在保存时自动格式化代码。

很好。谢谢,我不知道缩进在括号内是如此重要。你能报告它来改进错误信息吗?谢谢。完成:
main =
  let (x, y, _) = List.foldl (\elem (sum, diff, mult) ->
      (sum + elem, elem - diff, mult * elem)
      ) (0, 0, 0) [1, 2, 3, 4, 5] in
  text ("Hello, World!" ++ toString x)
main =
  let (x, y, _) = List.foldl (\elem (sum, diff, mult) ->
      (sum + elem, elem - diff, mult * elem)
      ) (0, 0, 0) [1, 2, 3, 4, 5]
  in
  text ("Hello, World!" ++ toString x)