关于 Ocaml Refs 的初学者问题
let x = ref 100 in let f () = !x in let x = ref 50 in ??? ; f () 通过将一些东西插入 ??? ,你应该得到 50 的答案。 (不是阴影)。但我现在不知…
如何使用模式匹配检测 Ocaml 中的交换模式?
我需要检测我的函数之一中的交换模式。我认为编写以下内容可以完成工作: let my_fun a b = match a,b with (*...*) | a,b | b,a when is_valid b -> …
Ocaml编译多个文件(循环依赖)
我已经下载了ocaml的xml-light并尝试编译它,但从未成功,问题如下。 当我输入ocamlopt dtd.ml时,会出现错误Unbound module Xml。 然后我输入ocamlop…
Ocaml:匹配一对中的一个项目
我有一个接受临时值的函数,它是一对。 type temp = (pd * string);; 我想在 temp 中提取该字符串。但我无法编写一个只能匹配 temp 的函数,因为它是…
如何在 Ocaml 中打印用另一种类型包装的字符串值?
我正在尝试使用 Printf.sprintf 打印出多个选项类型内的值 type tid = int type lock = string type rdwrlock = | Rdlock of lock | Wrlock of lock t…
从 OCaml 中的列表创建双向链表
我经常被告知,使用 OCaml 中的 Lazy 模块,可以完成用 Haskell 等惰性语言可以做的所有事情。为了测试这个说法,我试图编写一个函数,将常规列表转换…
OCaml 中的状态 monad
我试图在 OCaml 中实现状态 monad(作为练习)。我的实现如下所示: module type MONAD_BUILDER = sig type 'a t val return : 'a -> 'a t val bind :…
使用 Ocamllex 进行字符串词法分析 (The Tiger Compiler)
我正在尝试遵循 Appel 的“ML 中的现代编译器实现”,并使用 Ocamllex 编写词法分析器。 规范要求词法分析器在翻译转义序列后返回字符串。 以下代码摘…
当换行符为“/r”时,如何读取文本文件的行而不是“/n”?
我有一个巨大的 .txt 文件,其中包含数万个形容词的列表。在文本文件中,每个单词都独占一行。我使用以下函数将其读入列表(然后使用 Array.of_list …
如何从 OCaml 中的文本文件中逐行读取?
这是我到目前为止所拥有的。这不是您所需要的一切吗?我不断收到错误“错误:未绑定模块标准” let r file = let chan = open_in file in Std.input_l…
Ocaml:打印出 int 列表数组中的元素
我有一个创建状态的函数。状态定义为: type state = graph * bool array;; 图是: type graph = int list array;; 图是一个数组,并且在每个索引处可…