gpt4 book ai didi

list - Haskell 多行 `let` in `ghci`

转载 作者:行者123 更新时间:2023-12-02 20:54:26 26 4
gpt4 key购买 nike

我在 ghci 中,发现以下内容有效:

let foo = ["a", "b", "c"]

...但这不起作用:

let bar = ["a",
"b",
"c"]

...这也不行:

let baz = ["a"] ++
["b"] ++
["c"]

当我尝试将其编译为文件时出现了同样的错误,所以这不是来自 ghci 与使用 ghc 的问题。

错误:

[1 of 1] Compiling Main             ( test.hs, test.o )

test.hs:3:1: error:
parse error (possibly incorrect indentation or mismatched brackets)

最佳答案

在 GHCi 中,您可以使用 :{ :} 来表示多行表达式。例如:

Prelude> :{
Prelude| let bar = ["a",
Prelude| "b",
Prelude| "c"]
Prelude| :}

:{ :} 防止 GHCi 在下一个换行符之后评估您的代码并向您抛出错误,因为它不是一个完整的表达式。

另请注意,顶级定义不需要let。在普通的 Haskell 源文件中,您只需编写:

bar = ["a",
"b",
"c"]

此外,在较新的 GHCi 版本 (8.0+) 中,您也不需要 let

关于list - Haskell 多行 `let` in `ghci`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40933256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com