据我所知,本文讨论了OCaml目前的模块类型/签名系统的起源。作者建议对签名中的类型声明(允许单独编译)和显式类型声明(表示性)进行不透明的解释。试图将我自己的一些例子放在一起来演示OCaml模块签名符号试图解决的问题,我在两个文件中编写了以下代码:module type我承认,我不确定在module A : B中遇到的语法:,但它让我怀疑是否存在这样或类似的语法(
在OCaml中,假设给出了一个类型:是否有特定于OCaml的内置(给定'a myTypeA myTypeB类型的值x )来获得'a myTypeA类型的值y(基本上取消构造该类型并移除myTypeB)?我在找一个有签名的函数:
val deconstruct : 'a myTypeA myTypeB -> 'a myTypeA
我正在尝试用OCaml编写一个简单的塔防御游戏,作为一个学习项目,但我在如何构建代码方面遇到了问题。我一直试图避免使用类/对象来表示我的塔和敌人,主要是因为我还没有学习OCaml对象是如何工作的,但更主要的是因为我在阅读关于ocaml的文章时似乎对使用它们产生了反感。无论如何,我一直在尝试为每种类型的塔都有一个模块,这些模块都有相同的签名(TOWER),实现主循环用来更新游戏的功能。create : unit -> t
在Haskell和Scala中有很多关于依赖类型的信息。对于OCaml来说,没那么多。是否有人有足够的技能在OCaml中提供如何实现这一目标的编码示例(如果有可能的话)?当然有(被抛弃的) ,但似乎不可能将这些东西合并到“常规”OCaml代码中。顺便提一下,值得一提的是OCaml 分支,它可以满足依赖类型系统的某些需求。contract f = {x : x > 0}