(defun f1 (i) (defun f1a (i) (* i i)) (f1a i)) (defun f2 (i) (define (f2a i) (* i i)) (f2a i)) (define (f3 i) (defun f3a (i) (* i i)) (f3a i)) (define (f4 i) (define (f4a i) (* i i)) (f4a i)) ;;Disassembly of #: ;;11 bytes, 2 constants, and (2,0,0) stack slots ;;0 required-arg ;;1 bind ;;2 push [0] f1a ;;3 push [1] bytecode... ;; 0 required-arg ;; 1 dup ;; 2 dup ;; 3 slot-set #0 ;; 4 mul ;; 5 return ;;4 enclose ;;5 %define ;;6 pop ;;7 refg [0] f1a ;;8 refn #0 ;;9 call #1 ;;10 return ;;Disassembly of #: ;;11 bytes, 2 constants, and (2,0,0) stack slots ;;0 required-arg ;;1 bind ;;2 push [0] f2a ;;3 push [1] bytecode... ;; 0 required-arg ;; 1 dup ;; 2 dup ;; 3 slot-set #0 ;; 4 mul ;; 5 return ;;4 enclose ;;5 %define ;;6 pop ;;7 refg [0] f2a ;;8 refn #0 ;;9 call #1 ;;10 return ;;Disassembly of #: ;;compile errors ;;#: Call to undeclared function: f3a ;;#: Reference to undeclared free variable: f3a ;;12 bytes, 3 constants, and (3,0,1) stack slots ;;0 required-arg ;;1 slot-set #0 ;;2 push [0] f3a ;;3 push [1] (lambda (i) (* i i)) ;;4 push [2] "f3a" ;;5 make-closure ;;6 %define ;;7 pop ;;8 refg [0] f3a ;;9 slot-ref #0 ;;10 call #1 ;;11 return ;;Disassembly of #: ;;9 bytes, 0 constants, and (3,1,2) stack slots ;;0 required-arg ;;1 dup ;;2 slot-set #0 ;;3 init-bind ;;4 dup ;;5 dup ;;6 slot-set #1 ;;7 mul ;;8 return