gpt4 book ai didi

haskell - 如何使用 Scott 编码表示嵌套类型?

转载 作者:行者123 更新时间:2023-12-02 15:52:33 26 4
gpt4 key购买 nike

ADT 可以使用 Scott 编码来表示,将乘积替换为元组,将求和替换为匹配器。例如:

data List a = Cons a (List a) | Nil

可以使用 Scott 编码进行编码:

cons = (λ h t c n . c h t)
nil = (λ c n . n)

但我找不到如何使用 SE 编码嵌套类型:

data Tree a = Node (List (Tree a)) | Leaf a

如何做到这一点?

最佳答案

如果Wikipedia article是正确的,那么

data Tree a = Node (List (Tree a)) | Leaf a

有 Scott 编码

node = λ a . λ node leaf . node a
leaf = λ a . λ node leaf . leaf a

看起来 Scott 编码对(嵌套)类型无关。它所关心的只是向构造函数传递正确数量的参数。

关于haskell - 如何使用 Scott 编码表示嵌套类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655680/

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