single-namespace


Scheme is a single-namespace Lisp. This means that functions and data do not reside in separate namespaces (such as they do in Common-Lisp). With only a single namespace, you cannot have a function called list and also data called list. However, with separate namespaces, you must make sure to explicitly apply the function that was passed in as data.

For example:

a single-namespace lisp:

 (define (foo do-something) 
   (do-something 1 2 3)) 

a multiple-namespace lisp:

 (define (foo do-something) 
   (funcall do-something 1 2 3)) 

There are tradeoffs here, and it seems to be a hot spot between lisp camps.