[英]Haskell: Determine type of parameter in data type
假设我定义了一个数据类型如下:
data Type = MyInt |
MyBool |
MyFun Type Type
我有一个变量type_a = MyFun MyInt MyBool
我还有另一个变量type_b = MyInt
我将如何检查 type_b = type_a (MyInt) 中的第一个参数?
您可以派生Eq
然后使用模式匹配来解构MyFun
并将第一个参数与type_b
进行比较:
data Type = MyInt | MyBool | MyFun Type Type deriving Eq
type_a = MyFun MyInt MyBool
type_b = MyInt
firstArgEquals :: Type -> Type -> Bool
firstArgEquals (MyFun a _) b = a == b
firstArgEquals _ _ = False
firstArgEquals type_a type_b -- returns True
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.