OCAML递归列表尺寸功能返回不正确的大小



我假设这正是找到列表长度的代码:

let rec size lst =
  match lst with
    | [] -> 0
    | h::t -> 1 + (size t);;

但是由于某种原因,当我将其应用于2号列表时,它会返回1?我觉得我缺少一个明显的问题,但这对我来说似乎很简单。

表达式size [1,2]将返回1,因为[1,2][(1,2)]的句法糖,即,它是由一对组成的列表。列表的元素由OCAML中的分号;分开。因此,size [1;2]将返回2

最新更新