我看到以下两个函数在语法上都是尾递归函数,但是,在球拍中,它们中的哪一个真正被视为尾递归,或者两者兼而有之?我的意思是它是否被解释器优化为尾递归。
;;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有什么不同的答案吗?