Clojure - Differences with other Lisps (original) (raw)

This information is provided for programmers familiar with Common Lisp or Scheme.

Clojure Common Lisp Scheme Java
Has nil? nil - means 'nothing' nil - means false or empty list - null
Has true? true - #t true (primitive)
Has false? false - #f false (primitive)
Conditionals distinguish: nil or false/ everything else nil/non-nil #f/non-#f false/true
List/sequence library manipulates distinguished concrete type(s)? No - seq abstraction with many collection implementations Yes - cons and vector Yes - pair No - Iterator abstraction with many collection implementations
Singleton empty-list value? No - can have distinct empty values of concrete collection types nil '() No
End-of-sequence returns: a logical sequence for which seq returns nil nil '() false
Host null: nil NA NA NA
Host true: true (boxed) NA NA NA
Host false: false (boxed) NA NA NA