使用列表的前两个值时的模式匹配

时间:2014-09-10 22:25:00

标签: haskell

使用列表的两个第一个值时,我遇到了模式匹配的问题。

foo [] = []
foo (x:y:ys) = foo ys

当参数中的原始列表是2的倍数时,这可以正常工作,但不是这样。我收到一个错误陈述"函数foo"

中的非详尽模式

我想知道当x:y:ys中没有y值时如何匹配模式。 (在这种情况下,模式会是什么样子?)

1 个答案:

答案 0 :(得分:3)

foo [x] = ...

foo (x:[]) = 

两者都匹配一个只有一个元素的列表。