遞歸數據類型

在計算機編程語言中,遞歸類型(又名:遞歸定義隱含類型隱含定義)是一種特殊的數據類型,它表示自身內部可能包含其它的同樣類型的值。

範例

編輯

以下是一個在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)。