簡介
在計算機程式語言中,遞歸類型(又名:遞歸定義、隱含類型或隱含定義)是一種特殊的數據類型,它表示自身內部可能包含其它的同樣類型的值。
範例
以下是一個在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)