gpt4 book ai didi

haskell - 代数数据类型的计数

转载 作者:行者123 更新时间:2023-12-04 09:48:27 25 4
gpt4 key购买 nike

我正在阅读/收听 Chris Taylor 关于代数数据类型的演讲。

http://chris-taylor.github.io/blog/2013/02/10/the-algebra-of-algebraic-data-types/

还有一个关于函数类型的部分。具体的例子

data Bool = True | False
data Trio = First | Second | Third

鉴于法律
a -> b == B^A

给定
Trio -> Bool     should equal     8

为什么是 8 而不是 6 通过乘法?

如果我理解正确,具体的组合应该是
First  -> True
First -> False
Second -> True
Second -> False
Third -> True
Third -> False

这不就是 Trio -> Bool 的 6 个具体实现吗? ?

我错过了什么?

最佳答案

这些不是完整的实现。对于完整的实现,它就像以二进制从 0 计数到 7(总共 8 = 23 个数字),每个实现的每一行代表三个位中的一个。所有的可能性看起来像这样(如果我们调用我们的函数 f ):

1)

f First  = False
f Second = False
f Third = False

2)
f First  = True
f Second = False
f Third = False

3)
f First  = False
f Second = True
f Third = False

4)
f First  = True
f Second = True
f Third = False

5)
f First  = False
f Second = False
f Third = True

6)
f First  = True
f Second = False
f Third = True

7)
f First  = False
f Second = True
f Third = True

8)
f First  = True
f Second = True
f Third = True

关于haskell - 代数数据类型的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23922807/

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