2

Is there a way to pattern match any list without iterating through the two cases: empty or non-empty list ?

I would like to fix the following code:

foo [] = "something else"
foo [_:_] = "something else"

Since the part in something else is the same I would like to remove it from one place.

Thank you.

4

1 回答 1

8

该模式_匹配任何内容而不将其绑定到名称。一个名字,比如say,xs也可以匹配任何东西。因此,您可以执行以下任一操作:

foo _ = "something else" 或者 foo xs = "something else"

如果“其他东西”确实不依赖于xs第一种形式的值,则首选,以便另一个程序员(和您)可以快速发现该值在这个特定等式中无关紧要。

不幸的是,您的第一个案例已经是第二种形式,因此它匹配所有可能性。其他情况将永远无法解决。

于 2013-02-28T14:16:23.437 回答