遞歸資料類型
此條目需要補充更多來源。 (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)