`ghci`中的Haskell多行`let` [英] Haskell multi-line `let` in `ghci`
本文介绍了`ghci`中的Haskell多行`let`的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在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
。
这篇关于`ghci`中的Haskell多行`let`的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文