Haskell 如何测试异构数据构造函数?
似乎是一个非常基本的问题,但如果我有:Haskell 如何测试异构数据构造函数?,haskell,Haskell,似乎是一个非常基本的问题,但如果我有: data LogLevel = Info | Warning | Error Int x = Info y = Error 13 我会写字 if (x==Info) 但是如何编写类型错误的测试呢?Error不是类型;它是一个数据构造函数。您可以使用模式匹配来区分LogLevel类型的各种值 case x of Info -> ... Warning -> ... Error n -> ... 在这里,您不仅可以根据x的值
data LogLevel = Info | Warning | Error Int
x = Info
y = Error 13
我会写字
if (x==Info)
但是如何编写类型错误的测试呢?
Error
不是类型;它是一个数据构造函数。您可以使用模式匹配来区分LogLevel
类型的各种值
case x of
Info -> ...
Warning -> ...
Error n -> ...
在这里,您不仅可以根据
x
的值选择正确的“分支”,还可以在模式匹配时获得与Error
(在n
中)关联的特定整数;它是一个数据构造函数。您可以使用模式匹配来区分LogLevel
类型的各种值
case x of
Info -> ...
Warning -> ...
Error n -> ...
在这里,您不仅可以根据
x
的值选择正确的“分支”,还可以在该模式匹配时获得与Error
(在n
中)相关联的特定整数。可能重复的(当然不完全正确,但希望通过该线程阅读能够回答您的问题;但您发布的问题的简短答案是“模式匹配”),非常感谢。可能重复的(当然不完全正确,但希望通过该线程阅读能够回答您的问题;但您发布的问题的简短答案是“模式匹配”)非常受欢迎。