38得票11回答
使用正则表达式验证数字范围

我的输入数字是int类型的。但输入数字必须在-2055到2055的范围内,并且我想通过使用正则表达式来检查这一点。 所以有没有办法编写正则表达式来检查数字是否在(-2055, 2055)范围内? 使用if语句检查数字是否在范围内更容易。但我正在编写解释器,所以应该使用正则表达式检查输入数字。

37得票3回答
类ML模式匹配的类型检查算法?

如何确定一个给定的模式是否“好”,即它是否是穷尽和非重叠的,适用于 ML 风格的编程语言?假设你有以下类型的模式:match lst with x :: y :: [] -> ... [] -> ... 或者:match lst with x :: xs -> ....

35得票2回答
“open!”是什么意思?

我在查看一个OCaml源文件,其开头包含以下指令:open! MiscParser 我知道open MiscParser的意思是“打开MiscParser模块”,但我不知道感叹号代表什么。

35得票1回答
OCaml作为Hacklang和Flow背后的编程语言,有哪些优点?

近期,Facebook宣布推出Flow,这是一个用于JavaScript的静态类型检查器,主要由OCaml实现(https://code.facebook.com/posts/1505962329687926/flow-a-new-static-type-checker-for-javascr...

35得票3回答
什么是行类型?它们是否属于代数数据类型?

我经常听说 F# 不支持 OCaml 行类型,这使得 OCaml 比 F# 更加强大。 它们是什么?它们是代数数据类型,例如和类型(discriminated unions)或积类型(元组,记录)吗?在其他方言中,比如 F# 中是否可以编写行类型?

34得票3回答
在Ocaml中寻找树的深度的尾递归函数

我有一个类型为tree的定义如下:type 'a tree = Leaf of 'a | Node of 'a * 'a tree * 'a tree ;; 我有一个用于查找树深度的函数如下:let rec depth = function | Leaf x -> 0 ...

34得票15回答
OCaml中类似于Python的range函数的惯用语是什么?

我想创建一个从1到n的整数列表。在Python中,我可以使用range(1, n+1)来实现,在Haskell中可以使用:take n (iterate (1+) 1)。 在OCaml中,正确的做法是什么?

34得票4回答
在OCaml中,“equal(=)”和“identical(==)”有什么区别?

在OCaml中,我们有两种类型的等价比较方式: x = y 和 x == y, 那么它们之间有什么不同呢? 在OCaml中,x = y 是否就像Java中的x.equals(y)一样? 而x == y 是否就像Java中的x == y(比较地址)一样?

34得票6回答
如何最简单地构建一个在JVM上运行并生成Java字节码的F#编译器?

当前的F#编译器是用F#编写的,是开源的,并在.Net和Mono上运行,使其可以在许多平台上执行,包括Windows、Mac和Linux。 F#的代码引用机制已被用于在项目中将F#编译为JavaScript,例如WebSharper、Pit和FunScript。 还有一些人对在JVM上运行F#...

33得票3回答
OCaml语言的集成开发环境(IDE)

除了Camelia之外,是否有其他可信赖的OCaml IDE? 如果存在基于Eclipse的IDE,我更倾向于使用它。