输入'='上的解析错误我的Haskell有问题

时间:2013-04-20 02:22:02

标签: haskell

这是一个简单的功能:

len [] = 0    
len (x:xs) = 1 + len xs

我已使用:l将其加载到GHCi中,但我在输入=上遇到此错误解析错误。

我在另一台电脑上运行,然后就可以了。我的电脑是Mac。我的Haskell有问题吗?

1 个答案:

答案 0 :(得分:6)

len函数的两种模式之间需要换行符。然后它工作正常:

$ cat len.hs
len [] = 0
len (x:xs) = 1 + len xs
$ ghci
GHCi, version 7.4.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :l len.hs
[1 of 1] Compiling Main             ( len.hs, interpreted )
Ok, modules loaded: Main.
*Main> len []
0
*Main> len [1]
1
*Main> len [1,2,3]
3
*Main> 

既然你提到它是Mac,也许你有一个新行 - 约定不兼容。确保您的文本编辑器和GHCi同意您的平台上的换行符的构成。