ocaml相关内容

如何显示ocaml程序的每个声明的类型?

我喜欢在终端中使用 ocaml 来从每个 ocaml 命令中获取交互式结果或类型,例如: 目标 Caml 版本 3.11.2# 让 a = 5;;值 a : int = 5 但是当命令很多的时候,我们把所有的都放在一个像test.ml这样的文件里,然后编译它是正常的.目前,我使用 ocamlc -o test test.ml.但是当我在终端中做test时,却看不到每个声明的类型,很遗憾. ..
发布时间:2021-06-12 18:34:59 其他开发

根据存储函数名称的字符串变量在 OCaml 中调用函数

OCaml 中是否有这样的机制,以便我可以根据存储函数名称的变量动态调用函数,就像我在其他脚本语言中可以做的那样? 例如,我写了一个函数 foo().我将字符串常量“foo"存储在变量“x"中的某处.在 JavaScript 中,我可以像这样 window[x](arguments); 来动态调用方法 foo().我可以在 OCaml 中做类似的事情吗? 解决方案 不,这不是 OCa ..
发布时间:2021-06-12 18:34:56 其他开发

过度概括的咖喱 fns

module MapHelpers (Ord : Map.OrderedType) = struct包括 Map.Make (Ord)让 add_all a b = fold add a b结尾 有效但看似等效 module MapHelpers (Ord : Map.OrderedType) = struct包括 Map.Make (Ord)让 add_all = 折叠添加结尾 编译失败 ..
发布时间:2021-06-12 18:34:49 其他开发

OCaml:对象定义 &克隆

类备份=对象(自我:'mytype)val 可变副本 = 无方法保存=复制}方法恢复 = 与 Some x 匹配副本 ->× |无 ->自己结尾;; 在这段代码中,有几处我不太明白. (self: 'mytype) self表示递归类,但是'mytype的作用是什么? 某些 {} 获取副本仍然为 None 的备份副本,并将其分配给副本? 谢谢!! ..
发布时间:2021-06-12 18:34:46 其他开发

Opam 中的图形安装

我正在尝试使用 opam install graphics 安装图形,但出现以下错误留言: $ opam 安装图形将执行以下操作:∗ 安装图形 5.1.1↻ 重新编译ocamlfind 1.9.1 [使用图形]↻ 重新编译 base-bytes base [使用 ocamlfind]↻ 重新编译 ounit2 2.2.4 [使用基字节]↻ 重新编译 ANSITerminal 0.8.2 [使用基 ..
发布时间:2021-06-12 18:34:43 其他开发

绝对值函数 Ocaml

我正在研究这种编程语言“Ocaml";我有一些麻烦,因为我阅读了官方的 ocaml 文档,但我不明白如何使用: ";"和“;"和“在"特别是在函数定义里面. 这是我的代码: 让 abs_val 值:int ->整数 =让 abs_ret = ref 0 ;如果值 >= 0然后 abs_ret := 值否则 abs_ret := -value ;让返回:int = abs_ret;;p ..
发布时间:2021-06-12 18:34:40 其他开发

不支持沙丘版本

我正在尝试从源代码安装 google-drive-ocamlfuse,但是 prereuiqisites 让我有点困惑.我遇到了这个错误: [bf@localhost google-drive-ocamlfuse]$ dune build @install文件“/home/bf/.opam/default/lib/gapi-ocaml/dune-package",第1行,第11-15个字符:1 ..
发布时间:2021-06-12 18:34:37 其他开发

Ocaml 中的列表递归

这就是我想要实现的目标,使用递归返回到值低于给定值的列表: # list_below 3 [7;1;0;3];;- : 整数列表 = [1;0]# list_below 1 [-7;1;0;3];;- : 整数列表 = [-7;0]# list_below 9.0 [4.2;3.6;5.0;12.8];;- : 浮动列表 = [4.2;3.6;5.0] 这是我到目前为止所写的内容,它似乎没有返 ..
发布时间:2021-06-12 18:34:34 其他开发

多态变体和 let%bind 类型错误

我正在尝试使用 OCaml 中的可组合错误处理中的技术(错误的多态变体的结果类型)对于我编写的一些代码.我尝试使用的函数类型如下所示: val parse : parser ->令牌列表 ->(Nominal.term, [> `ParseError of string ]) 结果.tval lex : 词法分析器 ->字符串 ->(token list, [> `LexError of str ..
发布时间:2021-06-12 18:34:28 其他开发

如何同步执行一个 Lwt 线程

有没有办法同步执行一个用Lwt库制作的线程? 具体来说,我正在尝试向服务器运行一系列发布请求,以计算某些值并返回结果. 基于对这个问题的回答: 如何在OCaml? 我可以使用低级方法(套接字)或使用 Cohttp 库来实现.低级方法的优点是直接和直接,但我宁愿坚持使用 Cohttp(不需要读/写循环等).不幸的是,我对 Lwt 完全陌生,并且基于:https://mirag ..
发布时间:2021-06-12 18:34:25 其他开发

无法从 opam 获得最新的why3 版本

我使用的是 Linux Slackware 14.2、opam 版本 1.2.2、ocaml 4.03.0 并想安装 why3 模块.据我在网上看到的why3包的最新版本是1.2.0. 但即使我跑了 opam 更新 它仍然建议我安装why3 1.0.0. 我应该怎么做才能更新包列表? 我如何以 root 身份安装why3 模块系统?是否足够安全? 解决方案 您的 op ..
发布时间:2021-06-12 18:34:22 其他开发

与 Python 的“with"语句(资源的自动释放)对应的 OCaml 是什么?

与 Python 的“with"语句对应的 OCaml 是什么? with open('test.txt', 'r') as f:# 用 f 做事#此时f会一直关闭,即使有异常 即:什么是OCaml中的首选方式来安全地确保某个资源(打开的文件、数据库连接、HTTP连接等)总是在某个时间点被释放?等待垃圾收集器在这里是没有选择的,异常不应该阻止资源被释放. 当然,在 OCaml 中,您始 ..
发布时间:2021-06-12 18:34:18 Python

Ocaml 语法很奇怪

我在 Ocaml 中有这个程序,它从键盘读取一行并返回一个 int : let get_int() =print_string "插入一个数字\n";;让 input = read_line() 输入让 return__ = int_of_string( input );;print_string "我会打印你写的内容:";print_int ( get_int() );print_string ..
发布时间:2021-06-12 18:34:15 其他开发

多态变体和类型签名

(这是多态变体和 let%bind 类型错误的扩展/提炼) 考虑以下代码: 版本 1: let x : [>`Error1 ] = (`Error1 : [> `Error1 ])让 y : [>`错误1 |`错误2] = x 版本 2: let x : [>`Error1 ] = (`Error1 : [ `Error1 ])让 y : [>`错误1 |`错误2] = x 版 ..
发布时间:2021-06-12 18:34:12 其他开发

for循环中的OCaml分号单表达式

为什么在下面的代码中Proc.num_stack_slots.(i) 末尾有一个分号?我认为分号是 OCaml 中的分隔符.我们可以总是在块的最后一个表达式中添加一个可选的分号吗? for i = 0 to Proc.num_register_classes - 1 doProc.num_stack_slots.(i) 参见 https://github.com/def-lkb/ocaml- ..
发布时间:2021-06-12 18:34:09 其他开发

为什么在顶层之外的某些语句中需要双分号

我有以下两行代码: 让 a = [1;2;3;4;5;6;7;8;9;0]print_string (String.concat " " (List.map string_of_int a)) 它给了我这个错误: 文件“test.ml",第 65 行,字符 0-0:错误:语法错误 但是,如果我以双分号结束该行: 让 a = [1;2;3;4;5;6;7;8;9;0];;print ..
发布时间:2021-06-12 18:34:03 其他开发

OCaml:过滤映射并将值放入列表中

我可以通过以下方式过滤我的地图关键: module PairKeys =结构类型 t = 字符串 * 字符串让比较 (x0,y0) (x1,y1) =匹配 String.compare x0 x1 与|0 ->String.compare y0 y1|c ->C结尾模块 StringMap = Map.Make(PairKeys);;....让 put_key_values_into_a_lis ..
发布时间:2021-06-12 18:34:01 其他开发