gpt4 book ai didi

haskell - 确定 Haskell 中的类型

转载 作者:行者123 更新时间:2023-12-02 21:03:33 25 4
gpt4 key购买 nike

假设我正在 haskell 中创建一个数据类型,并且该数据类型接受多个构造函数。有没有一种简单的方法可以在我的代码中确定它被创建为哪一个?

编辑:

示例,我正在使用 dataType

data LogicValue =  CloseAnd (Int, Int) (Int, Int)
| CloseXor (Int, Int) (Int, Int)
| FarAnd LogicValue LogicValue
| FarXor LogicValue LogicValue

是否有一种简单的方法来确定某物是否是 CloseAnd 实例?

最佳答案

当然,只需对构造函数名称进行模式匹配即可!

f :: LogicValue -> Ret
f (CloseAnd a b) = ...
f (CloseXor a b) = ...

当然可以使用 case 开关来完成同样的操作。

<小时/>

由于这个问题不断出现在我的通知框中(我的答案有投票,如果我诚实的话,可能不太值得)我想补充一点,你的问题与“没有任何关系”确定类型”。 data 的不同构造函数都具有相同的结果类型,即LogicValue。您可能正在考虑“子类型”CloseAndCloseXor...,就像在 OO 语言中一样。 Haskell 变体类型与 OO 类层次结构有一些相似之处,但它们仍然是不同的概念。

关于haskell - 确定 Haskell 中的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19020291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com