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
中)相关联的特定整数。

可能重复的(当然不完全正确,但希望通过该线程阅读能够回答您的问题;但您发布的问题的简短答案是“模式匹配”),非常感谢。可能重复的(当然不完全正确,但希望通过该线程阅读能够回答您的问题;但您发布的问题的简短答案是“模式匹配”)非常受欢迎。