-(defun ls-compile (sexp &optional env)
- (cond
- ((symbolp sexp) (format nil "V_~a" sexp))
- ((integerp sexp) (format nil " ~a " sexp))
- ((stringp sexp) (format nil " \"~a\" " sexp))
- ; list
- ((case (first sexp)
- (if (format nil "((~a)? (~a) : (~a))"
- (ls-compile (second sexp))
- (ls-compile (third sexp))
- (ls-compile (fourth sexp))))
- (lambda (concat "(function ("
- (format nil "~{V_~a~^, ~}" (second sexp))
- "){ "
- (ls-compile-block (cddr sexp) env)
- "})
-")) ; (function (params) { body })
- (t nil)))))