From: Y S Ramakrishna
Subject: Loop Facility : Common Lisp Query
Date:
Message-ID: <5067@ucsbcsl.ucsb.edu>
Guy Steele's "Common Lisp -- the language" 2 ed. (Ch 26, pp 709) states:
X3J13 voted in January 1989 to adopt an extended definition of the loop
macro as a part of the forthcoming draft Common Lisp standard.
Can anyone fill me in on whether this is now part of the standard
Common Lisp. I am using Lucid Lisp 4.0.2, but do not know whether
unrestricted use of their loop syntax will adversely affect the
portability of my (source) code (Clearly, since this is only a macro,
the (preprocessed) code should not face portability problems.).
Anyone know about any OFFICIAL standard that has been adopted since then ?
Please reply by e-mail to ···@nu.ece.ucsb.edu, since I am not a
regular reader of this newsgroup.
Many thanks.
-- Ramki.
In article <····@ucsbcsl.ucsb.edu> ···@eta.ece.ucsb.edu (Y S Ramakrishna) writes:
[...]
portability of my (source) code (Clearly, since this is only a macro,
the (preprocessed) code should not face portability problems.).
Many Common Lisp macros are explicitly allowed to expand to
implementation-dependent code. This is one of the flaws of the
language.
As has become traditional, I will point out here that such design
decisions are motivated by the _implementation techniques_ used
traditionally. The myth supporting such bizarreries in the language is
that "it's better (why?) to write part of the compiler by writing
user-level macros", not-so-user-level by the way since they live in
the Lisp package, and can not be changed. At this point the
distinction between macros and special form is fuzzy, and more :
inessential. There are only two kinds of syntactic constructs in the
language: those that are well specified, and those that are not.
It is common to hear the argument that, since many forms in Lisp are
implemented as macros, the language has _only XX special forms_ (see
your favorite dialect's ref. manual), and thus is small and elegant.
Anyway, wether you say loop is a macro or a special form, you have to
implement it right to be conformant, and it will take the same amount
of pain (so what's the point ?)
Vincent