次の機能があるとします。
(define (g x) (f x))
(define (f x) (+ 1 x))
別gの で一時的に呼び出したい。たとえば、次のようなものです。 f
(let ((f (lambda (x) (+ 2 x))))
(g 5))
上記のコードを 7 に評価したいのですが、そうではありません。代わりに、のスコープ外gで を呼び出すため、 6 と評価されます。f let
gの内部で再定義せletずに、また の定義の本体全体をインライン化せずにこれを行う方法はありgますletか? (実際にgは、非常に大きく複雑な関数になる場合があります)。