使用索引访问列表中的元素
在 OCaml 中,我想编写一个函数,返回列表给定索引处的元素。例如[4;5;6] 0 -> 4,[4;5;6] 1 -> 5. .我知道如何递归地执行此操作,但是任何人都可以展…
警告 8:此模式匹配并不详尽。下面是一个不匹配的案例的例子
Closed. This question needs debugging details. It is not currently accepting answers. 编辑问题以包含所需行为、特定问题或错误以及重现问题所…
在 OCaml 列表的所有位置插入元素
尝试在列表的所有位置插入数字,结果是列表的列表。 类似于: insert 4 [1; 2; 3] = [[4; 1; 2; 3]; [1; 4; 2; 3]; [1; 2; 4; 3]; [1; 2; 3; 4]] 我的…
让 OCaml 代码适合输入为 int 或 list
let rec fold_inorder f acc t = match t with | Leaf -> acc | Node (l, x, r) -> let ar = fold_inorder f acc r in let an = x :: ar in fold_inor…
Doaitse Swierstra 的“Typing 动态类型”的最短实现在 OCaml 中
(我希望这个问题不是“基于意见”) 来自 Doaitse 的动态类型输入 Haskell 中的 Swierstra 大约有 200 行代码。在 OCaml 中做同样的事情似乎需要更多…
Dune 无法编译我的第一个项目
我按照以下步骤创建项目 使用以下沙丘命令创建项目 dune init proj --kind=lib mymaps 然后在“lib”目录下添加2个文件 mymaps.mli type ('k, 'v) t v…
Windows 上的 OCaml 图形问题
每当我尝试使用 Ocaml Graphics 打开窗口时,我都会收到错误: Graphics.Graphic_failure "Cannot open display " 这是在已经安装 XMing 和 PuTTy 之…
如何创建一个类型来容纳 Ocaml 函数的返回值?
我正在尝试在 Ocaml 中实现一个惰性斐波那契生成器,如下所示: (* fib's helper *) let rec fibhlpr n = if n == 0 then 0 else if n == 1 then 1 el…
如何使用组合运算符修改代码?
我想稍微修改此代码的以下功能: let find_context = function | InputNeeded env -> pop_until element_contains_prediction_items env (* (pop_unti…
apt remove 和 apt purge 后,Ocaml 仍保留在系统中
我有一个 Ubuntu 20.04,它是我在很久以前安装的。由于某种原因,我在上面安装了 OCaml,尽管我很确定我从未使用过它。我试图通过卸载 OCaml sudo apt…
有没有一种简单的方法可以在 OCaml 中将 [[a;b;c];[d;e;f]] 转换为 [[a;d];[b;e];[c;f]] ?
我想在 OCaml 中编写一个函数,仅使用递归性来转换任何看起来像这样的列表:[[a1;...;an];[b1;。 ..bn];...;[z1;...;zn]] 到 [[a1;b1;...;z1];...;[an…
请解释 ppx_variants_conv make_matcher 方法签名
我发现自己想要一种方法来围绕代码中的一些大型变体类型进行一些代码生成,并且我发现了 ppx_variants_conv (https://github.com/janestreet/ppx_vari…
如何在ocaml中编写组合函数?
Closed. This question needs debugging details. It is not currently accepting answers. 编辑问题以包含所需行为、特定问题或错误以及重现问题所…
扩展插件架构中的类型
现在,我有一个用 OCaml 编写的可用 HTML 模板系统。一般设计是,单个模板是由应用于以下模块类型的函子返回的模块: module type TEMPLATE_DEF = sig…