【发布时间】:2011-05-27 19:56:03
【问题描述】:
head' :: [a] -> a
head' [] = error "No head for empty lists!"
head' (x:_) = x
head' :: [a] -> a
head' xs = case xs of [] -> error "No head for empty lists!"
(x:_) -> x
我要问一个我不明白的相当简单的问题。
在上面的代码中,我看到它需要一个输入列表。
但在第三行,它写着(x:_),这让我很困惑。
谁能向我解释他们为什么写(x:_)而不是[x:_]?
另外,我不明白(x:_) 是什么意思。
谢谢。
【问题讨论】:
-
这里有一个提示:
(x:_)的类型为[a],[x:_]的类型为[[a]]。
标签: list haskell pattern-matching