我刚刚构建了一个小测试程序来查看我的更大问题,但我不断收到错误。
let test a =
List.length [a;a;a]
我想用 ocamlbuild 构建它。
ocamlbuild call.byte -no-hygiene
我尝试添加 -pkgs 'core',但效果不佳。
这是错误。
Error: Unbound value List.length
有什么建议么?
我刚刚构建了一个小测试程序来查看我的更大问题,但我不断收到错误。
let test a =
List.length [a;a;a]
我想用 ocamlbuild 构建它。
ocamlbuild call.byte -no-hygiene
我尝试添加 -pkgs 'core',但效果不佳。
这是错误。
Error: Unbound value List.length
有什么建议么?
这不是一个真正的答案,对不起。但是评论区太受限制,无法给出建议的命令行。
List 模块应该作为任何 OCaml 安装的一部分进行安装。它是指定语言的一部分。如果您的编译器确实无法找到 List 模块,则说明有问题。
一种可能性是您的安装混乱并且没有 List 模块。对于这种情况,首先要尝试的是在您的系统上重新安装 OCaml(如果可能)。
这是我如何为我的安装找到 Stdlib 模块(实际文件)的方法。
$ ocamlc -where
/Users/self/.opam/4.10.0/lib/ocaml
$ ls -l $(ocamlc -where)/stdlib.cm*a
-rw-rw-r-- 1 self staff 2812632 Mar 2 09:07 \
Users/jeffsco/.opam/4.10.0/lib/ocaml/stdlib.cma
-rw-rw-r-- 1 self staff 22621 Mar 2 09:07 \
/Users/jeffsco/.opam/4.10.0/lib/ocaml/stdlib.cmxa
另一种可能性是,当您说List
您不是在谈论标准 List 模块而是在谈论其他模块时。换句话说,也许你的环境已经被List
新的东西取代了。一些库喜欢这样做是因为他们觉得自己优于标准库(对此感觉不做评论)。
如果这是正在发生的事情,并且如果您想使用这个其他库,那么您应该阅读该库的文档以了解如何访问标准库函数。几乎总有办法做到这一点。