有没有办法模式匹配任何列表而不迭代这两种情况:空列表还是非空列表?
我想修复以下代码:
foo [] = "something else"
foo [_:_] = "something else"
Run Code Online (Sandbox Code Playgroud)
由于部分something else 是相同的,我想从一个地方删除它.
谢谢.
模式_匹配任何内容而不将其绑定到名称.一个名字,比如说,xs也匹配任何东西.所以你可以这样做:
foo _ = "something else"
要么
foo xs = "something else"
如果"其他东西"真的不依赖于xs第一种形式的值是首选,那么另一位程序员(和你)可以很快发现该值在这个特定的等式中是无关紧要的.
不幸的是,你的第一个案例已经是第二种形式,因此它符合所有可能性.永远不会达到其他情况.