gpt4 book ai didi

f# - 将 OCaml 转换为 F# : Differences between typing and type inference

转载 作者:行者123 更新时间:2023-12-04 06:22:43 24 4
gpt4 key购买 nike

在研究中type inference F# 和 OCaml 之间的差异我发现他们倾向于关注 nominativestructural type system .然后我找到了Distinctive traits of functional programming languages其中将类型和类型推断列为不同的特征。

由于特征文章说 OCaml 和 F# 都使用 Damas-Milner我认为是标准算法的类型推断,即不允许变化的算法,这两个特征如何关联?是不是 Damas-Milner 是构建两个类型推理系统的基础,但它们每个都根据类型修改 Damas-Milner?

我还检查了 Damas、Milner 和 Hindley 的 F# 源代码,但没有找到。搜索推断一词出现了类型推断的代码。

如果是这样,是否有任何论文讨论特定语言的每种类型推理算法的细节,或者我是否必须查看 OCaml 的源代码?和 F# .

编辑

这是 page这突出了 OCaml 和 F# 之间与类型推断相关的一些差异。

最佳答案

关于你的 DM 问题,你是对的。对于 F# 和 OCaml,DM 算法只是一种模式。类型检查器已扩展为支持自定义功能。在 OCaml 中,这些特性包括具有行类型、多边形变体、一流模块的对象。在 F# - .NET 类型系统互操作(类、接口(interface)、结构、子类型、方法重载)中,度量单位。我认为 F# 类型推断也以从左到右的方式倾斜,以允许更有效的交互式检查,因此一些代码令人惊讶地需要注释。

就类型检查和推理而言,OCaml 比 F# 更具表现力和直观性。 SML 比它们中的任何一个都更接近于普通的 HM,但 SML 还具有一些针对某些运算符多态性和记录支持的扩展。

关于f# - 将 OCaml 转换为 F# : Differences between typing and type inference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341767/

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