为什么此OCaml代码不受值限制
我不明白函数(我的路径映射器)不受值限制为什么此OCaml代码不受值限制,ocaml,value-restriction,Ocaml,Value Restriction,我不明白函数(我的路径映射器)不受值限制 # let rec my_map ~f l = match l with [] -> [] | h::t -> f h::my_map f t;; val my_map : f:('a -> 'b) -> 'a list -> 'b list = <fun> # let my_path_mapper = my_map ["/usr/sbin"; "/usr/bin"; "/sbin
# let rec my_map ~f l =
match l with
[] -> []
| h::t -> f h::my_map f t;;
val my_map : f:('a -> 'b) -> 'a list -> 'b list = <fun>
# let my_path_mapper =
my_map ["/usr/sbin"; "/usr/bin"; "/sbin"; "/bin"; "/usr/games"; "/usr/local/games"];;
val my_path_mapper : f:(string -> 'a) -> 'a list = <fun>
#让我记录我的地图~fl=
匹配
[] -> []
|h::t->f h::我的地图f t;;
val my_map:f:('a->'b)->'a list->'b list=
#让我的路径映射器=
我的地图[“/usr/sbin”;“/usr/bin”;“/sbin”;“/bin”;“/usr/games”;“/usr/local/games”];;
val my_path_mapper:f:(字符串->'a)->'a列表=
请告诉我为什么?OCaml有一个“宽松的值限制”。您可以在这里阅读:
以下是先前关于StackOverflow的讨论: