Executive Summary
- Common Lisp, Racket, Clojure, and Emacs Lisp are compared in this report.
- Idiomatic code examples are provided for each language.
- A cross-lisp package manager is proposed for future development.
The Buzz Score
The Internet’s Verdict: 70% Hyped, 30% Skeptical
Forum Voices
Experts weigh in on the comparison of Lisp languages.
I know that the purpose of the page is to compare syntax of common lisp, racket, clojure, and emacs lisp. But some examples could be more idiomatic, for instance instead of
(defun add (a &rest b) (if (null b) a (+ a (eval (cons '+ b)))))One should avoid eval and use endp instead of null:
(defun add (a &rest b) (if (endp b) a (apply #'add (+ a (first b)) (rest b))))
Another expert notes the importance of documentation in Common Lisp.
The page indicates that there is not function for documentation in common lisp, but
(documentation 'documentation 'function) "Return the documentation string of Doc-Type for X, or NIL if none exists. System doc-types are VARIABLE, FUNCTION, STRUCTURE, TYPE, SETF, and T.
Future Developments
A cross-lisp package manager is proposed to simplify code sharing between languages.
Focus Keyword: Lisp Comparison