Subject: Re: Lisp article at IBM
From: rpw3@rpw3.org (Rob Warnock)
Date: Tue, 06 Feb 2007 21:27:09 -0600
Newsgroups: comp.lang.lisp
Message-ID: <4fmdnRSOKIKQ2lTYnZ2dnUVZ_uHinZ2d@speakeasy.net>
Bill Atkins  <not-a-real-email@not-a-real-domain.com> wrote:
+---------------
| >(times_two a)
| 8
| 
| This is a pretty poor use of a macro, but it's certainly interesting 
| that he was able to convince his Lisp implementation (GCL, according to 
| the article) to produce that output.
+---------------

Yeah, especially since GCL *should* have blown up, the way (say) CMUCL
does, complaining about trying to multiply the *symbol* A by two:

    cmu> (times_two a)
    Error: Argument Y is not a NUMBER: A.
    Backtrace:
    0: (DEBUG:BACKTRACE 8 #<Synonym Stream to *TERMINAL-IO*>)
    1: (MY-DEBUGGER-HOOK #<SIMPLE-TYPE-ERROR {5894FD8D}> #<unused-arg>)
    2: (INVOKE-DEBUGGER #<SIMPLE-TYPE-ERROR {5894FD8D}>)
    3: (ERROR SIMPLE-TYPE-ERROR :DATUM A :EXPECTED-TYPE ...)
    4: (KERNEL:TWO-ARG-* 2 A)
    5: (* 2 A)
    6: (MACROEXPAND-1 (TIMES_TWO A) NIL)
    7: (MACROEXPAND (TIMES_TWO A) NIL)
    ...


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607