递归数据类型
外观
![本页使用了标题或全文手工转换](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
(重定向自递归类型)
此條目需要补充更多来源。 (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)
本條目部分或全部内容出自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。
|
|