簡體   English   中英

遞歸類型和列表有什么區別?

[英]What's the difference between a recursive type and a list?

我對 OCaml 還很陌生(目前在 uni 上的課很糟糕),我們最近研究了遞歸類型。 我們被告知我們使用它來創建列表,但 OCaml 中已經有列表,所以我真的不明白什么時候應該使用一個而不是另一個。

例子 :

(* list made with a recursive type : *)
type int_list =
    | None
    | Element of int * int_list

(* just a list *)
let int_list2 : int list = [] 

遞歸類型和列表有什么區別?

“遞歸類型”描述了整個類型類別,而list是一種特定的遞歸類型。 換句話說: list是遞歸類型,但是除了list之外還有其他遞歸類型。

OCaml 中已經有列表,所以我真的不明白什么時候應該使用一個而不是另一個。

什么時候應該使用int_list而不是內置list類型? 絕不。 你的老師向你展示了這個定義,作為遞歸類型的例子,而不是你應該實際使用的東西。

只有在定義標准庫中尚不存在的內容時,您才會定義自己的遞歸類型(當然,學習練習除外)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM