类似 ML 模式匹配的类型检查算法?
对于 ML 风格的编程语言,如何确定给定模式是否“良好”,特别是它是否详尽且不重叠? 假设您有如下模式: match lst with x :: y :: [] -> ... [] ->…
OCAML: let func ax = (ax);; 之间的区别并让 func ax = ((fun a -> a) x);;?
我对 OCAML 的这项作业有点困惑。我试图将一个函数和一个值作为参数传递到另一个函数中。例如,我有一个名为 test 的函数,它接受 (fun x -> x+x) 和 …
使用选项类型而不是递归下降解析器的异常?
我正在 OCaml 中编写一个简单的递归下降解析器。通常(据我从在线教程和书籍中可以看出),异常用于指示解析失败,例如: match tok with TokPlus -> …
简单的 OCaml 练习
我试图通过 Jason Hickey 笔记自学 OCaml,下面的练习让我难住了。 问题:编写一个函数 sum,给定两个整数边界 m,n 和一个函数 f 计算总和。 我正在尝…
ocaml null 关键字:一次但不再?
在 ocaml 顶层(版本 3.11.2),这个简单的表达式给了我一个错误: # let a = [] in if null a then 0 else 1;; Error: Unbound value null 我刚刚开…
gtkbuilder 接口在 lablgtk2 中不可用?
目前我正在使用 libglade 来构建 gui。不过,我想使用 gtkbuilder。 我在 lablgtk2 中找不到 gtkbuilder 接口(OCaml 到 gtk+ 的接口)。 lablgtk2 中…
Ocaml 中的括号
我正在 Ocaml toplevel 中评估一段非常简单的代码: let p5 () = print_int 5;; p5 ();; print_string "*************************";; let p4 = print…
抄送 Ocaml 顶层并在 Emacs 下设置区域
我在某处看到过 Cc Cr 的描述是“评估整个选定区域”或 tuareg-eval-region。但是当我在 Emacs 下尝试它时,似乎在设置区域后,并将光标放在该区域末…
是否可以在 OCaml 中进行编译时执行,类似于 C++模板元编程?
在 C++ 中,递归模板和常量值作为模板参数允许执行有趣的代码生成和编译时执行示例,例如 阶乘。 是否可以使用参数多态性、函子或其他概念在 OCaml 中…
如何在 OCaml 中构建文件中字符出现频率的映射?
我想在 OCaml 中创建一个函数,它返回每个字符在文件中出现频率的映射。例如,考虑一个包含以下内容的文件: AAAAA BB C 该输入将生成此映射: { ' ' …
Ocaml 相当于 Lisp 的 let*?
如果可能的话,我宁愿使用 let ... and ... and ... in 而不是嵌套的 let,但正常的 let 语法不允许这样做对于相互依赖的表达式。 不允许: let encry…
OCaml表达式类型问题
我正在尝试创建一个 OCaml 函数,将字符串中 'a 的数量添加到给定的参数中。 let rec count_l_in_word (initial : int) (word : string) : int= if St…