繁体   English   中英

在具有多种数据类型的ADT上更精确的模式匹配?

[英]More Concise Pattern Matching on ADT with Multiple Data Types?

假设我有以下代数数据类型:

data Foo = Bar Int | Baz Int | Bippy

我正在编写一个函数,给定Foo ,除Bippy任何东西都返回True。

是否有比所有数据类型上的模式匹配更简洁的方法来实现此功能?

f :: Foo -> Bool
f (Bar _) = True
f (Baz _) = True
f Bippy = False

在这个例子中,只用了3行代码。 但是,如果我有10种数据类型怎么办?

怎么样

f :: Foo -> Bool
f Bippy = False
f _ = True

而且您没有3种数据类型,只有3种构造函数可用于1种数据类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM