不会佔用唿叫堆叠空间。以下Scheme程式同样计算一个数字的阶乘，但是使用尾端递回：
能够解决的问题.1、数据的定义是按递归定义的。如费氏数列。2、问题解法按递归算法实现。如汉诺塔。3、数据的结构形式是按递归定义的。如二叉树、广义表等。
递回资料.资料型别可以通过递回来进行定义，比如一个简单的递回定义为自然数的定义：「一个自然数或等于0，或等于另一个自然数加上1」。Haskell中可以定义连结串列为：data ListOfStrings = Em