我正在寫一個函數,它接受一個列表並返回列表中所有項目的平方和。稱爲上(1 2 3)它應該返回14:(1 + 2 + 3 )。尾遞歸?
我有這個sqsum功能:
(define (sqsum lis)
(if (null? lis)
0
(+ (* (car lis) (car lis)) (sqsum (cdr lis)))
)
)
這是尾遞歸?我認爲這是遞歸的,但不是尾遞歸。 這是我家庭作業的一部分,我不在尋找解決方案:我只想知道這是否是遞歸的尾部遞歸。如果沒有,那麼我需要閱讀更多並找到新的解決方案。
只是問自己這個函數的最後一個操作將是什麼它返回之前 - 是它sqsum通話或者是+? – Carsten