我是OCaml的新手(目前在大学学习糟糕的类(,我们最近研究了递归类型。我们被告知我们使用它来创建列表,但OCaml中已经有了列表,所以我真的不明白什么时候应该使用一个列表而不是另一个列表。
示例:
(* list made with a recursive type : *)
type int_list =
| None
| Element of int * int_list
(* just a list *)
let int_list2 : int list = []
递归类型和列表之间有什么区别?
"递归类型";描述了整个类型类别,而CCD_ 1是一个特定的递归类型。换句话说:list
是递归类型,但除了list
之外还有其他递归类型。
OCaml中已经有列表了,所以我真的不明白什么时候应该使用一个列表而不是另一个列表。
什么时候应该使用int_list
而不是内置的list
类型?从不你的老师向你展示了这个定义,作为递归类型的一个例子,而不是你应该实际使用的东西。
只有在定义标准库中不存在的东西时,您才会定义自己的递归类型(当然,学习练习除外(。