资料来源 : Free On-Line Dictionary of Computing
recursive type
A data type which contains itself. The commonest example is
the list type, in {Haskell}:
data List a = Nil | Cons a (List a)
which says a list of a's is either an empty list or a {cons
cell} containing an 'a' (the "head" of the list) and another
list (the "tail").
Recursion is not allowed in {Miranda} or Haskell {synonym
type}s, so the following {Haskell} types are illegal:
type Bad = (Int, Bad)
type Evil = Bool -> Evil
whereas the seeminly equivalent {algebraic data type}s are
acceptable:
data Good = Pair Int Good
data Fine = Fun (Bool->Fine)