遞歸數據類型
此條目需要補充更多來源。 (2014年8月18日) |
在計算機編程語言中,遞歸類型(又名:遞歸定義、隱含類型或隱含定義)是一種特殊的數據類型,它表示自身內部可能包含其它的同樣類型的值。
範例
編輯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)