在http://elm-lang.org/try中粘贴以下代码并单击"编译":
import Html exposing (text)
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)
Run Code Online (Sandbox Code Playgroud)
导致意外错误:
检测到1个模块中的错误.
- 语法问题---------------------------------------------- --------------看起来关键字
in被用作变量.7 | )(0,0,0)[1,2,3,4,5] in
^
将其重命名为其他内容.
这有什么不对?括号匹配.
缩进在Elm中很重要,并且你有一个左括号(第二行到最后一行)的右括号.将其更改为有效代码(也是List.foldl,不是foldL):
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)
Run Code Online (Sandbox Code Playgroud)
将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)
Run Code Online (Sandbox Code Playgroud)
您还可以elm-format在编辑过程中加入,以便在保存时自动格式化代码.
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |