How do the various ANSI CL implementations differ?
See Common Lisp Implementations: A Survey by Daniel Weinreb.
See Common Lisp Implementations: A Survey by Daniel Weinreb.
There’s a list on clojure.org of differences between Clojure and other Lisps. Some other things I’ve noticed using Clojure: Idiomatic Clojure leans heavily toward immutable data structures. Anywhere you see SETF in CL may have to be changed in Clojure to take full advantage. (You always have the option of using mutable Java data structures … Read more
Ltk is quite popular, very portable, and reasonably well documented through the Tk docs. Installation on SBCL is as easy as saying: (require :asdf-install) (asdf-install:install :ltk) There’s also Cells-Gtk, which is reported to be quite usable but may have a slightly steeper learning curve because of its reliance on Cells. EDIT: Note that ASDF-INSTALL is … Read more
There is no built-in way of generating a sequence of numbers, the canonical way of doing so is to do one of: Use loop Write a utility function that uses loop An example implementation would be (this only accepts counting “from low” to “high”): (defun range (max &key (min 0) (step 1)) (loop for n … Read more
Common Lisp FIND is not a good idea: > (find nil ‘(nil nil)) NIL Above would mean that NIL is not in the list (NIL NIL) – which is wrong. The purpose of FIND is not to check for membership, but to find an element, which satisfies a test (in the above example the test … Read more
#’functionname in Common Lisp Common Lisp and some other Lisp dialects have more than one namespace. Here the ones for functions and values are different. To get the function value of a name, we need to write: (function functionname) Since that is a bit long to write, there is a shorter notation: #’functionname To show … Read more
It strikes me you’d rather see it from the horse’s mouth, so here’s a choice extract from a message Rich posted: Scheme #t is almost completely meaningless, as Scheme conditionals test for #f/non-#f, not #f/#t. I don’t think the value #f has much utility whatsoever, and basing conditionals on it means writing a lot of … Read more
#’foo is an abbreviation for (function foo) by the reader. In CL, there are several different namespaces, #’foo or (function foo) will return the functional value of foo. You may want to search for “Lisp-1 vs. Lisp-2”, check other Stackoverflow questions, or read an old article by Pitman and Gabriel in order to learn more … Read more
Lisp is a wide family of language and implementations. Dynamic in the context of Lisp means that the code has a certain flexibility at runtime. It can be changed or replaced for example. This is not the same as dynamically typed. Compilation in Lisp Often Lisp implementations have a compiler available at runtime. When this … Read more
The reason of this warning is a GNU policy which does not want a package cl to be used in Elisp. But it would be foolish as well to prohibit it completely. So they decided to show a warning. You can find more information here