(DEFUN F (F FLAG) (COND ((NOT FLAG) (PRINT `(1ST F= ,F A= ,A)) (SETQ A (1+ A)) (PRINT `(1ST F= ,F A= ,A)) (FUNCALL F F T) (PRINT `(1ST F= ,F A= ,A)) (SETQ A (1+ A)) (PRINT `(1ST F= ,F A= ,A))) (T (PRINT `(2ND F= ,F A= ,A)) (SETQ A (1+ A)) (PRINT `(2ND F= ,F A= ,A)))) F) (DEFUN G () (LET ((A 1)) (PROG2 (PRINT `(G A= ,A)) (LET ((F1 (*FUNCTION F (A)))) (FUNCALL F1 F1 ())) (PRINT `(G A= ,A)))))