递归类型和列表有什么区别?



我是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类型?从不你的老师向你展示了这个定义,作为递归类型的一个例子,而不是你应该实际使用的东西。

只有在定义标准库中不存在的东西时,您才会定义自己的递归类型(当然,学习练习除外(。

最新更新