現在、「Real Word OCaml」を使用していますが、名前付き/ラベル付きパラメーターを使用した基本的な例の 1 つが機能していないようです (utop 4.01.0 を使用):
let languages = ["OCaml"; "Perl"; "C"];;
List.map ~f:String.length languages;;
プロデュース:
Error: The function applied to this argument has type 'a list -> 'b list
This argument cannot be applied with label ~f
一方:
List.map String.length languages;;
期待される出力を生成します[5; 4; 1]
。
caml.inria.frは次のように述べています。
コア言語では、ほとんどの言語と同様に、引数は匿名です。
これは、このコードを機能させるために何らかの外部ライブラリを含める必要があるということですか?
編集
ここに私の~/.ocamlinit
ファイルがあります(本のインストール手順に従って):
(* Added by OPAM. *)
let () =
try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")
with Not_found -> ()
;;
#use "topfind"
#camlp4o
#thread
#require "core.top"
#require "core.syntax"