我正在Ocaml中编写一个递归函数,它应该计算整数列表中的项目数(是的,我知道有一个List.length函数,但我正在尝试自己做).然而,Ocaml编译器/解释器迫使我一直使用alpha列表.
那么说,当一个函数接受一个列表作为参数时,该列表的类型必须始终是alpha?这是错误的吗?谢谢
编辑:为什么我使用alpha列表不方便的原因是因为类型匹配投诉我无法将alpha列表的头部与整数值进行比较
简单:
let length (lst : int list) = ...
Run Code Online (Sandbox Code Playgroud)
我有点困惑,比较绊倒了你; 一个整数的比较应该只限制'a
为int
.例如,在
let length lst = match lst with
| x :: xs when x = 0 -> ...
Run Code Online (Sandbox Code Playgroud)
lst
会有类型int list
.