guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: JACAL, scm


From: Tom Lord
Subject: Re: JACAL, scm
Date: Tue, 25 Sep 2001 16:26:52 -0700 (PDT)

   I think in part the confusion arises because to some of us, the only
   context in which the #f '() equivalency has much meaning wrt Scheme is
   in reference to the possible use of guile as an elisp replacement.

That's not true, for at least three reasons:

Historically, () and #f were the same in Scheme, or optionally the
same in Scheme, until R5RS.  That makes reasonable sense, since the
values are the same in most other dialects of lisp.

Making () and #f the same in Guile is not only important for making
Emacs lisp a syntax for Guile, it is also important for exchanging
data structures between Emacs lisp and Guile.  One reason it is
important to be able to exchange data structures with Emacs is 
so that Emacs can be used as a front-end to Guile programs.

Similarly, making () and #f the same in Guile simplifies exchanging
data with Common Lisp programs.



   If it wasn't for elisp, I probably would be surprised we were
   discussing this at all since IMO #f '() equivalency doesn't match very
   well with the spirit of Scheme, whether or not it matches the letter.


We might agree that "the spirit of Scheme" means this (from R5RS):

   The report gives a defining description of the programming language
   Scheme.  Scheme is a statically scoped and properly tail-recursive
   dialect of the Lisp programming language invented by Guy Lewis
   Steele Jr. and Gerald Jay Sussman.  It was designed to have an
   exceptionally clear and simple semantics and few different ways to
   form expressions.  A wide variety of programming paradigms,
   including imperative, functional, and message passing styles, find
   convenient expression in Scheme.

Nothing in that statement has any bearing on whether or not () and #f
are the same, unless it is the observation that Scheme is a dialect 
of Lisp.  In Lisp, the "nil" and "false" values are traditionally the
same.

-t



reply via email to

[Prev in Thread] Current Thread [Next in Thread]