corecursion(共递归):一种在计算机科学(尤其是函数式编程与类型理论)中常见的定义方式,用来生成可能是无限的结构(如无限流 stream、惰性列表等)。它通常通过“先产出一部分结果,再把剩余部分交给下一步继续生成”的方式来工作,常与 coinduction(余归纳)相关。
/ˌkoʊrɪˈkɜːrʒən/
A stream of natural numbers can be defined by corecursion.
自然数流可以用共递归来定义。
Using corecursion, the program produces an infinite sequence lazily, computing only the values that are actually demanded.
使用共递归,程序以惰性方式生成无限序列,只在真正需要时才计算相应的值。
co-(“共同、相对”)+ recursion(“递归”)。该词在理论计算机科学中用来表达与递归“对偶(dual)”的思想:递归常用于消解/折叠有限结构(如把列表求和),而共递归常用于构造/展开可能无限的结构(如不断生成下一个元素的流)。