这是一个简单的功能:
len [] = 0
len (x:xs) = 1 + len xs
我已经将它加载到 GHCi 中:l
,但我在输入时得到了这个错误解析错误=
。
我在另一台电脑上运行,然后就可以了。我的电脑是Mac。我的 Haskell 有问题吗?
这是一个简单的功能:
len [] = 0
len (x:xs) = 1 + len xs
我已经将它加载到 GHCi 中:l
,但我在输入时得到了这个错误解析错误=
。
我在另一台电脑上运行,然后就可以了。我的电脑是Mac。我的 Haskell 有问题吗?
您需要在函数的两个模式之间换行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 就平台上的换行符的构成达成一致。