Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
跳转到内容

递归数据类型

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是递归数据类型当前版本,由Mhss留言 | 贡献编辑于2024年3月2日 (六) 10:49 範例。这个网址是本页该版本的固定链接。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)

在计算机编程语言中,递归类型(又名:递归定義隱含類型隱含定義)是一种特殊的数据类型,它表示自身内部可能包含其它的同样类型的值。

範例

[编辑]

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