I'm trying to declare an immutable variable in Haskell:
let a = [1, 2]
main = print $ sum a
but it claims
parse error (possibly incorrect indentation)
what's up with that?
I'm trying to declare an immutable variable in Haskell:
let a = [1, 2]
main = print $ sum a
but it claims
parse error (possibly incorrect indentation)
what's up with that?
let
不在顶层定义中使用。有几种方法可以纠正您的程序,其中一些是
a = [1,2]
main = print $ sum a
或者
main = do
let a = [1,2]
print $ sum a
或者
main = let a = [1,2] in print $ sum a
对于试图let
在顶层使用的人来说,通常的混淆来源是当他们试图将一些经过测试的表达式转换ghci
为实际的源文件时。
let
可以在您在 monad 中工作时使用。ghci 并main
在IO
monad 内部工作,因此您可以编写类似let a = [1,2]
ghci 的内容。