计算haskell中数组的长度
这个问题在这里已经有了答案:
你有两个声明,其中第二个是第一个声明。
您需要将len
声明为具有两个子句的一个函数。 在GHCi中,你可以这样做:
:{
let len [] = 0
len (h:t) = 1 + len t
:}
:{ ... :}
表单允许您像在*.hs
文件中那样输入多行声明。
GHCi, version 7.6.3: 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> let len [] = 0
Prelude> let len (h:t) = 1 + len t -- this shadows the earlier len
Prelude> len [1, 2, 3]
*** Exception: <interactive>:3:5-25: Non-exhaustive patterns in function len
-- exception because the new len doesn't handle an empty list
Prelude> :{
Prelude| let len [] = 0
Prelude| len (h:t) = 1 + len t
Prelude| :}
Prelude> len [1, 2, 3]
3
Prelude>
链接地址: http://www.djcxy.com/p/43279.html