我看到以下两个函数在语法上都是尾递归函数,但是,在球拍中,它们中的哪一个真正被视为尾递归,或者两者兼而有之?我的意思是它是否被解释器优化为尾递归。
;;1
(define (foo i m s)
    (if (< i m)
        (foo (+ i 1) m (+ i s))
        s))
;;2
(define (foo i m s)
    (if (= i m)
        s
        (foo (+ i 1) m (+ i s))))
其他 lisps有什么不同的答案吗?