类型“info”从函数中获得更多结果
我定义了一些复杂的数据类型,例如: type drawer = { ... box: boxes list } type table = { ... drawers: drawer list } type room = { ... tables:…
Ocaml 中函数声明的签名
我定义了一个如下所示的函数: let ff (f1: a_function) (f2: a_function) (v0: type1) (v1: type2): type3 = ... 另一个如下所示的函数可以工作: le…
“if”的缩进在 Emacs 下的 Ocaml 中
我正在使用 Emacs 编写 Ocaml 代码,目前 if 的缩进设置如下: if cond1 then e1 else if cond2 then e2 else if cond3 then e3 else e4 我想实现与 C…
如何在 OCaml 中退出迭代?
我尝试通过 List.fold_left 遍历列表 xl,我想在满足某些条件时退出迭代: List.fold_left (fun x acc -> if x = 5 then STOP THE ITERATION else x +…
LablGTK2中如何在窗口未聚焦时使光标可见?
我正在使用 LablGTK2 编写一个文本编辑器,我想知道是否可以使用 GSourceView2.source_view 使光标即使在窗口没有焦点时也可见。我已经搜索过这个答案…
如何根据 Ocaml 中的条件赋值?
我想表达如下: if b then let value = ... in else let value = .... in let double = value * 2 但似乎Ocaml不允许这种语法。如果我不想重复 let do…
在 Ocaml 中声明类型哪种风格更好?
我经常需要声明一个包含映射或列表的类型,例如: type my_type_1 = my_type_0 IntMap.t type my_type_2 = my_type_0 List 我还看到了另一种声明风格…
如何在Ocaml中打印一个数据块?
我想在终端中一一打印一些矩形,如下所示: 4 5 7 8 2 5 3 : bool 6 : int 这表示,给定一个数组 a,来自 a([2,3], [4,5 ]) 是 bool,a([5,6], [7,8])…
将元素添加到列表末尾的最简单方法是什么?
As:: : 'a -> '列表-> 'a list 用于将元素添加到列表的 begin 中,谁能告诉我是否有一个函数可以将元素添加到 end 中一个清单?如果没有,我想 List.r…
关于这种嵌套let-in的ocaml缩进样式
我正在阅读有关 Ocaml 嵌套引入的 Ocaml 风格指南。 http://www.seas.upenn.edu/~cis341/ programming_style.html#16 建议 缩进嵌套let表达式:具有嵌…
为什么 Map.make.fold 更像 List.fold_right (非尾递归)?
关于 Ocaml 折叠的天真问题:您能否解释一下为什么 Map.make.fold 的设计更像 List.fold_right 而不是 List.fold_left,请注意 List。 Fold_right 不…
如何使用用户提供的格式字符串在 OCaml printf 之后触发操作
我有一个简单的函数,可以打印字符串并退出: let fatal s = print_string "Log: "; print_endline s; exit 1 我可以使用 printf 执行类似的操作,而…