OCaml 未绑定值 List.assoc
OCaml Unbound value List.assoc
我正在编译一个带有调用 List.assoc 函数的模块,它无法构建给我 "Unbound value List.assoc" ...我已经尝试了其他列表函数,它们工作正常,它也在 utop 中工作正常。
我可以通过使用 corebuild 和这段代码编译一个 ml 文件来重现这个
open Core.Std
let p = [(1,2);(2,3);(3,4)]
in List.assoc 2 p
这是我的构建命令:
$ corebuild blah.byte + ocamlfind ocamlc -c -w A-4-33-40-41-42-43-34-44 -strict-sequence -g -bin-annot -short-paths -thread -syntax camlp4o -package bin_prot.syntax -package sexplib.syntax,comparelib.syntax,fieldslib.syntax,variantslib.syntax -package core -o blah.cmo blah.ml
File "blah.ml", line 5, characters 3-13: Error: Unbound value List.assoc Command exited with code 2.
核心库取代了标准的 OCaml List
模块。当你 open Core.Std
时,你用 Core 的 Core.Std.List
模块屏蔽了 OCaml 的标准 List
。 Core.Std.List.assoc
函数不存在。如果您没有在 utop 中打开 Core.Std
,那么您很可能仍在使用 OCaml 的标准库 List
模块。
Core 确实用 List.Assoc
提供了此功能的替代品。您可以在此处查看一些文档:https://ocaml.janestreet.com/ocaml-core/latest/doc/core_kernel.112.17.00/_build/lib/core_list/#/module:Assoc
List.Assoc.find_exn
看起来像是标准库的 List.assoc
.
的替代品
API已更改为:
List.assoc 1 p
看这个:
http://caml.inria.fr/pub/docs/manual-ocaml/libref/List.html
我正在编译一个带有调用 List.assoc 函数的模块,它无法构建给我 "Unbound value List.assoc" ...我已经尝试了其他列表函数,它们工作正常,它也在 utop 中工作正常。
我可以通过使用 corebuild 和这段代码编译一个 ml 文件来重现这个
open Core.Std
let p = [(1,2);(2,3);(3,4)]
in List.assoc 2 p
这是我的构建命令:
$ corebuild blah.byte + ocamlfind ocamlc -c -w A-4-33-40-41-42-43-34-44 -strict-sequence -g -bin-annot -short-paths -thread -syntax camlp4o -package bin_prot.syntax -package sexplib.syntax,comparelib.syntax,fieldslib.syntax,variantslib.syntax -package core -o blah.cmo blah.ml
File "blah.ml", line 5, characters 3-13: Error: Unbound value List.assoc Command exited with code 2.
核心库取代了标准的 OCaml List
模块。当你 open Core.Std
时,你用 Core 的 Core.Std.List
模块屏蔽了 OCaml 的标准 List
。 Core.Std.List.assoc
函数不存在。如果您没有在 utop 中打开 Core.Std
,那么您很可能仍在使用 OCaml 的标准库 List
模块。
Core 确实用 List.Assoc
提供了此功能的替代品。您可以在此处查看一些文档:https://ocaml.janestreet.com/ocaml-core/latest/doc/core_kernel.112.17.00/_build/lib/core_list/#/module:Assoc
List.Assoc.find_exn
看起来像是标准库的 List.assoc
.
API已更改为:
List.assoc 1 p
看这个: http://caml.inria.fr/pub/docs/manual-ocaml/libref/List.html