+(defun %compile-defvar (name)
+ (push (make-var-binding name) *env*)
+ (format nil "var ~a" (lookup-variable name *env*)))
+
+(defun %compile-defun (name)
+ (push (make-func-binding name) *fenv*)
+ (format nil "var ~a" (lookup-variable name *fenv*)))
+
+(defun compile-funcall (name args env fenv)
+ (format nil "~a(~{~a~^, ~})"
+ (lookup-function name fenv)
+ (mapcar (lambda (x) (ls-compile x env fenv)) args)))
+
+(defun ls-compile (sexp &optional env fenv)