gpt4 book ai didi

Haskell:将 Bool 视为 Int

转载 作者:行者123 更新时间:2023-12-04 23:12:44 28 4
gpt4 key购买 nike

如何实现一个以 int 开头的函数,并在每次(经历有限数量的可能性)返回 1 的几个(例如,5 个) bool 值之一时从中减去 1。

理想情况下的外观是:

function list1 list2 = num
where
num = 4
- (condition from var1 = true)
- (condition from var2 = true)
- (so on, so forth as long as needed)

我曾尝试实现这些行类似于:
      num = startVal
- (list1conditional == desiredVal)
- (etc)

但这是返回类型错误。

最佳答案

BoolEnum 的一个实例:您可以枚举 Bool 的两个值:False ,然后 True .

结果,它实现了 fromEnum :: Enum a => a -> Int ,一个映射 Enum 的值的函数输入 Int : 对于 Bool ,它映射 False0 , 和 True1 .

所以我们可以这样使用:

result = 5 - fromEnum cond1 - fromEnum cond2

或者例如使用条件列表:
result = 5 - sum (map fromEnum [cond1, cond2, cond3])

哪里 cond1cond2等是 Bool 类型的表达式.

关于Haskell:将 Bool 视为 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52185187/

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