在计算机编程语言中，递归类型（又名：递归定义、隐含类型或隐含定义）是一种特殊的数据类型，它表示自身内部可能包含其它的同样类型的值。
范例.以下是一个在Haskell中使用链表类型的一个列子：data List a = Nil | Cons a (List a)这表示a的链表s可以是一个空表或一个cons单元包含了一个'a'（链表的“头”）和另一个链表（“尾”）。递归不允许在Miranda语言中和Haskell的同义类型中出现，所以以下的Haskell类型是非法的：typ