;; TODO: air resistance, terminal velocity (defconstant +g+ 9.81) (defglobal *alt* 20000) (defglobal *v* 0) (defun step () (setq *alt* (- *alt* *v*)) (setq *v* (+ *v* +g+)) (format (standard-output) "~A~%" *alt*)) (defun my-main () (while (> *alt* 0) (step))) ;;; And here's an example from GNAT: (defun free-fall () (format (standard-output) "Gravitational constant: ~A~%" +G+) (format (standard-output) "Twice that: ~A~%" (* 2 +G+)) (let* ((time 10) (distance (* 0.5 +g+ (expt time 2)))) (format (standard-output) "Distance travelled in 10 seconds of free fall: ~A~%" distance)))