2

次の機能があるとします。

(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は、非常に大きく複雑な関数になる場合があります)。

4

4 に答える 4