gpt4 book ai didi

opa - Opa 是否提供代数数据类型?

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

我试图更深入地了解 Opa 背后的概念.特别是,我对不提供像 ML 或 Haskell 那样的可区分联合的决定很好奇(即定义几个包装零个或多个值的构造函数),而是保留记录类型和它们的总和类型。这个决定对我来说完全有意义(也许是因为我更喜欢 OOP 而不是 FP),而且似乎可以实现所有可以用歧视联合完成的事情。

但是,我们能说该语言仍然支持代数数据类型吗?这不是一个实际问题,而是一个关于术语的问题。

顺便说一句,Wikipedia说是的,也许应该更正。

最佳答案

在 Opa 中,一切都是记录,实际上,您可以实现对有区别的联合可以做的事情。

您将在 ocaml 中的何处写入 type tree = Leaf of int | Node of tree * tree
在 Opa 中,它将是 type tree = {int leaf} or {tree left, tree right}
您可能会注意到,与 Ocaml 不同的是,在 Opa 中,您可以在不明确定义其类型的情况下操作记录。这就是为什么即使 Opa 只使用记录,定义可区分联合仍然很简单。

顺便说一句,你有没有看过 http://doc.opalang.org/manual/The-type-system ?

关于opa - Opa 是否提供代数数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9556704/

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