我们说我有以下代数数据类型:
data Foo = Bar Int | Baz Int | Bippy
我正在编写一个函数,给定Foo
,除Bippy
之外的任何内容都返回True。
有没有比所有数据类型的模式匹配更简洁的方法来实现这个功能?
f :: Foo -> Bool
f (Bar _) = True
f (Baz _) = True
f Bippy = False
在这个例子中,它只花了3行代码。但是,如果我有10种数据类型怎么办?
答案 0 :(得分:6)
怎么样
f :: Foo -> Bool
f Bippy = False
f _ = True
并且您没有3种数据类型,您有1种数据类型的构造函数。