繁体   English   中英

Haskell:确定数据类型中的参数类型

[英]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.

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