递归类型和列表有什么区别?
What's the difference between a recursive type and a list?
我是 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 = []
What's the difference between a recursive type and a list?
“递归类型”描述了整个类型类别,而 list
是一种特定的递归类型。也就是说:list
是递归类型,但是除了list
.
还有其他递归类型
there already are lists in OCaml so I don't really understand when I should be using one over the other.
什么时候应该使用 int_list
而不是 built-in list
类型?绝不。你的老师向你展示了这个定义,作为递归类型的示例,而不是你应该实际使用的东西。
只有在定义标准库中不存在的东西时,您才会定义自己的递归类型(当然学习练习除外)。
我是 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 = []
What's the difference between a recursive type and a list?
“递归类型”描述了整个类型类别,而 list
是一种特定的递归类型。也就是说:list
是递归类型,但是除了list
.
there already are lists in OCaml so I don't really understand when I should be using one over the other.
什么时候应该使用 int_list
而不是 built-in list
类型?绝不。你的老师向你展示了这个定义,作为递归类型的示例,而不是你应该实际使用的东西。
只有在定义标准库中不存在的东西时,您才会定义自己的递归类型(当然学习练习除外)。