On Fri, Jan 25, 2008 at 11:28:07PM -0800, [EMAIL PROTECTED] wrote:
Call me crazy but wouldn't the empty list, (), make a more elegant FALSE object for Scheme than "#f"?
They wanted false to be distinct from the empty list. Common lisp does use the empty list as the only false value. Scheme as both the empty list and a special #f false object. Scheme has special objects #f and #t that are just booleans. This allows them to have the 'boolean?' predicate to test if something is boolean. Common Lisp has the special object NIL (same as ()), that is the only false object, but it is also the end of lisp. The 'T' value in common lisp also has some extra unusual properties such as being the parent class of everything. This means that everything is of type 'T', including 'T', whereas nothing is of type NIL, including NIL. There are advantages of either approach. Common lisp has a more complicated type system and overloads meaning of some things a bit more. Scheme tends to like to keep things more discrete. David -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg
