计算haskell中数组的长度

这个问题在这里已经有了答案:

  • 它从文件加载时起作用,但在输入ghci时不起作用。 为什么? 2个答案

  • 你有两个声明,其中第二个是第一个声明。

    您需要将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

    上一篇: Calculating the length of an array in haskell

    下一篇: exhaustive patterns in function