【发布时间】:2018-03-31 05:00:43
【问题描述】:
我在 OCaml 中有一个函数应该合并两个列表:
let rec merge (list1, list2) =
match (list1, list2) with
([], []) -> merge (List.tl list1, List.tl list2) :: List.hd list1 :: List.hd list2
|(_, []) -> merge (List.tl list1, list2) :: List.hd list1
|([], _) -> merge (list1, List.tl list2) :: List.hd list2;;
但由于某种原因,编译器不允许此代码退出:
错误:此表达式的类型为 'a list 但是需要一个类型为 'a 的表达式 类型变量 'a 出现在 'a 列表中
我如何指定这些是我正在尝试通过的“a”列表,而不是“a”?
【问题讨论】: