【发布时间】:2022-01-05 16:55:33
【问题描述】:
我是 OCaml 的新手,对函数式编程的经验很少。 我写了以下函数
let rec reverse l =
match l with
| [] -> []
| h::rest -> (reverse rest) @ h
它应该反转列表中的元素,例如将[1;2;3] 转换为[3;2;1]。
我不知道该函数是否可以工作,但问题是 OCaml 推断该函数为 'a list list -> 'a list 类型,而我希望它是 'a list -> 'a list。
# reverse [1;2;3;4];;
Error: This expression has type int but an expression was expected of type 'a list
【问题讨论】:
标签: functional-programming ocaml type-inference