【发布时间】:2014-11-16 23:46:28
【问题描述】:
好的,我正在研究这个函数:
myLength :: [a] -> Int
myLength [] = 0
myLength (x:xs) = 1 + myLength xs
但我感到困惑的是最后一行。这部分特别是:(x:xs)
在实现这一点时,我使用了方括号,因为我认为它是一个列表,并且我将它的第一个元素与它的其余元素分开。它是一个元组吗?
第二行和第三行之间似乎有点不匹配。为什么它可以是一个空数组但下一行是一个元组?这是我最初拥有的,并认为它最有意义,但它会引发错误。
myLength :: [a] -> Int
myLength [] = 0
myLength [x:xs] = 1 + myLength xs
我如何知道何时使用括号以及何时使用方括号?
【问题讨论】:
标签: function haskell pattern-matching tuples