有人可以给我关于在 OCaml (3.12) 中制作类型级整数支持加法和减法运算的建议/建议吗?
例如,如果我有这样表示的数字:
type zero
type 'a succ
type pos1 = zero succ
type pos2 = zero succ succ
...
我需要一种方法来定义这样的类型的函数:
val add: pos2 -> pos1 -> pos3
小背景:
我正在尝试移植一些用于物理维度操作的 haskell 代码,并且我需要能够定义维度类型的操作(代表 7 个基本 SI 单位指数的 7 个类型级别整数的记录)。
我需要这样做以避免动态绑定(使用对象时)并使编译器能够静态地评估和检查所有此类表达式。
我目前的理解是,我应该创建一个将操作实现为类型构造函数的 GADT,但我仍然在努力思考这个想法,任何提示都将不胜感激。
您可能也对这篇文章感兴趣Hindley-Milner 的许多洞,作者:Sam Lindley,来自 2008 年 ML 研讨会。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)