write-you-an-inference-in-fsharp:F#中实现的不同类型的推理算法

时间:2024-05-27 17:33:55
【文件属性】:

文件名称:write-you-an-inference-in-fsharp:F#中实现的不同类型的推理算法

文件大小:74KB

文件格式:ZIP

更新时间:2024-05-27 17:33:55

fsharp polymorphism hindley-milner typeinference typesystems

用F#给您一个推论 此仓库受该领域其他重要资源的启发,但主要针对惯用且易于遵循的F#代码。 话虽如此,类型推断算法并不是最容易理解的方法,但这将是描述不同类型和进行类型推断的方法的地方。 该算法分为纯的和可变的Hindley-Milner类型推断,以及对它的行多态性扩展。 欣德利·米尔纳(Hindley-Milner)推论 行多态性的Hindley-Milner推论 此回购源于我正在尝试使用的一种小语言,以测试关于类型系统的各种想法,而在阅读有关n级类型的论文之一时,我发现以下内容是正确的: 考虑到有关类型系统的论文有多少,令人惊讶的是,很少有关于类型推断的文献明确地针对实现者。 如果您有任何建议或想做任何贡献,请提交PR,我很乐意提供新版本或改进!


【文件预览】:
write-you-an-inference-in-fsharp-master
----Hindley-Milner-Mutable-Rowpolymorphism.md(1KB)
----Hindley-Milner-Basic.md(1KB)
----Hindley-Milner-Pure-Rowpolymorphism.md(733B)
----HMMutable()
--------HMMutable.fs(9KB)
--------paket.references(19B)
--------Program.fs(2KB)
--------inference.fsproj(370B)
----Hindley-Milner-Pure.md(834B)
----LICENSE(1KB)
----.paket()
--------Paket.Restore.targets(18KB)
--------paket.targets(4KB)
--------paket.exe(63KB)
----paket.dependencies(67B)
----HMMutable-RowPolymorphism()
--------HMMutableRowpolymorphism.fs(14KB)
--------paket.references(19B)
--------Program.fs(5KB)
--------inference.fsproj(385B)
----README.md(2KB)
----HMSplitSolve()
--------paket.references(19B)
--------Program.fs(2KB)
--------inference.fsproj(372B)
--------HMSplitSolve.fs(8KB)
----HMPure-Rowpolymorphism()
--------paket.references(19B)
--------HMPureRowpolymorphism.fs(8KB)
--------Program.fs(3KB)
--------inference.fsproj(382B)
----paket.lock(93KB)
----.gitignore(5KB)
----HMPure()
--------paket.references(19B)
--------Program.fs(2KB)
--------HMPure.fs(5KB)
--------inference.fsproj(367B)
----HMBasic()
--------HMBasic.fs(7KB)
--------paket.references(19B)
--------Program.fs(4KB)
--------inference.fsproj(368B)
----Hindley-Milner-Mutable.md(1KB)
----Hindley-Milner-Split-Solver.md(1KB)

网友评论