遞歸資料類型

在電腦程式語言中,遞歸類型(又名:遞歸定義隱含類型隱含定義)是一種特殊的資料類型,它表示自身內部可能包含其它的同樣類型的值。

範例

以下是一個在Haskell中使用鏈結串列類型的一個列子:

data List a = Nil | Cons a (List a)

這表示a的鏈結串列s可以是一個空表或一個cons單元包含了一個'a'(鏈結串列的「頭」)和另一個鏈結串列(「尾」)。

遞歸不允許在Miranda語言中和Haskell的同義類型中出現,所以以下的Haskell類型是非法的

type Bad = (Int, Bad)
type Evil = Bool -> Evil

相反地,表面上是相等的代數資料類型卻是可以的:

data Good = Pair Int Good
data Fine = Fun (Bool->Fine)

本條目部分或全部內容出自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。