(LAMBDA (%A0) (PROG (%R0 %R1 %R2 %R3) (SETQ %R0 %A0) (SETQ %R1 '1) (SETQ %R0 (<= %R0 %R1)) (UNLESS %R0 (GO 7)) (SETQ %R0 '1) (GO 18) 7 (SETQ %R0 FIB) (SETQ %R1 %A0) (SETQ %R2 '2) (SETQ %R1 (- %R1 %R2)) (SETQ %R0 (FUNCALL %R0 %R1)) (SETQ %R1 FIB) (SETQ %R2 %A0) (SETQ %R3 '1) (SETQ %R2 (- %R2 %R3)) (SETQ %R1 (FUNCALL %R1 %R2)) (SETQ %R0 (+ %R0 %R1)) 18 (RETURN %R0))) ;;; "byte" code: ;; (FUNCTION-HEADER 1 NIL) ;; (DUP 3) ;; (Q 1) ;; (<=) ;; (IF-FALSE 7) ;; (Q 1) ;; (GO 18) ;; 7 (GLOBAL FIB) ;; (DUP 4) ;; (Q 2) ;; (-) ;; (CALL 1 NIL) ;; (GLOBAL FIB) ;; (DUP 5) ;; (Q 1) ;; (-) ;; (CALL 1 NIL) ;; (+) ;; 18 (RETURN 1)