当我想简单地打印出一个值时,为什么 ghc 给我一个解析错误?
Why ghc give me a parse error when I wish to simply print out a value?
我有一个 haskell 文件:
main = putStrLn "hello world"
let a=1
show a
并且 ghc 说:
main.hs:3:1:
parse error (possibly incorrect indentation or mismatched brackets)
这里有很多问题。
首先,如果您想对 IO
中的表达式进行排序,您需要将它们放在 do
块中。其次,您需要使用缩进(只有空格,没有制表符!)来分隔 do 块,如下所示:
main = do
putStrLn "hello world"
let a=1
show a
最后,show a
将return一个字符串,但是你想要一个打印一个字符串的IO操作,所以它应该是putStrLn (show a)
,或者你可以使用 print a
因为打印功能是 show
ing(变成字符串)然后打印到控制台的组合。
我有一个 haskell 文件:
main = putStrLn "hello world"
let a=1
show a
并且 ghc 说:
main.hs:3:1:
parse error (possibly incorrect indentation or mismatched brackets)
这里有很多问题。
首先,如果您想对 IO
中的表达式进行排序,您需要将它们放在 do
块中。其次,您需要使用缩进(只有空格,没有制表符!)来分隔 do 块,如下所示:
main = do
putStrLn "hello world"
let a=1
show a
最后,show a
将return一个字符串,但是你想要一个打印一个字符串的IO操作,所以它应该是putStrLn (show a)
,或者你可以使用 print a
因为打印功能是 show
ing(变成字符串)然后打印到控制台的组合。