是否有可能只接受整数列表的Ocaml函数?

1 ocaml types list

我正在Ocaml中编写一个递归函数,它应该计算整数列表中的项目数(是的,我知道有一个List.length函数,但我正在尝试自己做).然而,Ocaml编译器/解释器迫使我一直使用alpha列表.

那么说,当一个函数接受一个列表作为参数时,该列表的类型必须始终是alpha?这是错误的吗?谢谢

编辑:为什么我使用alpha列表不方便的原因是因为类型匹配投诉我无法将alpha列表的头部与整数值进行比较

Chr*_*way 6

简单:

 let length (lst : int list) = ...
Run Code Online (Sandbox Code Playgroud)

我有点困惑,比较绊倒了你; 一个整数的比较应该只限制'aint.例如,在

let length lst = match lst with
  | x :: xs when x = 0 -> ...
Run Code Online (Sandbox Code Playgroud)

lst会有类型int list.