【发布时间】:2016-05-30 08:41:14
【问题描述】:
在创建个人list 类型之后,我有一个非常有趣的第一个项目来学习 OCaml:
type 'a my_list = Item of ('a * 'a my_list) | Empty;;
然后像这样填充它:
let num_list = Item (1, Item (2, Item(3, Empty)));;
我必须重新编码列表模块的许多功能,这些功能将适应我的新列表类型,如上所示。
我从Length 开始,这听起来最简单,也是一个很好的开始。
这是我目前所拥有的:
let rec length my_list =
match my_list with
| [] -> 0
| head::rest -> 1 + (length rest);;
哪个有正确的定义:
val length : 'a list -> int = <fun>
但是当我通过我新创建的列表时,我收到以下错误:
错误:此表达式的类型为 int my_list 但是需要一个类型为“列表”的表达式
我错过了什么?
到目前为止,我很喜欢 OCaml,非常感谢您的帮助。
【问题讨论】:
标签: ocaml