

Basic Design Questions

The existence of distinct function and value cells in Common Lisp is in
part because a lot of existing code expects these cells to be distinct,
and that is the sort of expectation that is very hard to undo.  In
addition to the question of historical compatibility, many people felt
that using a single name space leads to a lot of extra bugs when some
program rebinds a variable that happens to hold a function that is
called within the scope of the new binding.  This bug is much less
likely in a lexically bound lisp than in a dynamic one, but it still is
a danger.  Reasonable people can disagree about whether the elegance of
a single namespace is worth the danger of accidentally clobbering
function definitions, but that's what the reasoning was.

-- Scott