我正在写一个函数,它接受一个列表并返回列表中所有项目的平方和。称为上(1 2 3)它应该返回14:(1 + 2 + 3 )。尾递归?
我有这个sqsum功能:
(define (sqsum lis)
(if (null? lis)
0
(+ (* (car lis) (car lis)) (sqsum (cdr lis)))
)
)
这是尾递归?我认为这是递归的,但不是尾递归。 这是我家庭作业的一部分,我不在寻找解决方案:我只想知道这是否是递归的尾部递归。如果没有,那么我需要阅读更多并找到新的解决方案。
只是问自己这个函数的最后一个操作将是什么它返回之前 - 是它sqsum通话或者是+? – Carsten