gpt4 book ai didi

Haskell 模式匹配——如何使用常量变量

转载 作者:行者123 更新时间:2023-12-02 05:10:07 24 4
gpt4 key购买 nike

理想情况下,我想写这样的东西:

myValue1 = 1 :: IntmyValue2 = 2 :: IntmyFunc :: Int -> BoolmyFunc myValue1 = TruemyFunc myValue2 = False

调用 myFunc myValue2 返回 True - 这不是我想要的。我知道为什么会这样,但有没有一种方法可以在 Haskell 中表达这一点,而无需诉诸 C 风格的 #define 语句?

最佳答案

好吧,Haskell 不会像这样统一名称。这些新的“myValue1”和“2”标识符是您要绑定(bind)的新变量。

最 Haskelly 的方法是使用强类型和模式匹配:

data Values
= D1
| D2

myFunc :: Values -> Bool
myFunc D1 = True
myFunc D2 = False

为您提供静态保证,只有“1”或“2”可以传递给 myFunc,适当的符号匹配,您甚至可以通过派生 Enum 来保留对整数的转换。

关于Haskell 模式匹配——如何使用常量变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6495243/

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