假设我有以下功能:
(define (g x) (f x))
(define (f x) (+ 1 x))
我想暂时g
用不同 f
的电话。例如,像这样:
(let ((f (lambda (x) (+ 2 x))))
(g 5))
我希望上面的代码评估为 7,但事实并非如此。相反,它的计算结果为 6,因为g
调用了.f
let
有没有一种方法可以做到这一点,而无需g
在 内部重新定义,并且无需内联in 中let
定义的整个主体?(在实践中,可能是一个非常庞大、复杂的函数)。g
let
g