Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!newsstand.cit.cornell.edu!news.acsu.buffalo.edu!dsinc!spool.mu.edu!newspump.sol.net!howland.erols.net!feed1.news.erols.com!worldnet.att.net!ix.netcom.com!netcom.com!vrotney
From: vrotney@netcom.com (William Paul Vrotney)
Subject: Re: '(a b c) and (list a b c)
In-Reply-To: John Somerville's message of 13 Dec 1996 04:40:17 GMT
Message-ID: <vrotneyE2CCyJ.v3@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
References: <58qmnh$a21@fountain.mindlink.net>
Date: Fri, 13 Dec 1996 07:32:43 GMT
Lines: 38
Sender: vrotney@netcom.netcom.com

In article <58qmnh$a21@fountain.mindlink.net> John Somerville <John_Somerville@mindlink.bc.ca> writes:

> 
> Are these identical in Common Lisp?   I had thought so, however in 
> XLisp-Stat they are not for some functions.   
> 
> For example  for (spin-plot '( a b c)) does not work in XLisp-Stat whereas
> (spin-plot (list a b c)) does.   If I substitute '+' for 'spin-plot' 
> the function performs properly.   Is that right?   If it is, how do I
> examine the two different data structures, i.e. what function do I use
> to see their internal representation.

If 'spin-plot' is a function then they will both be evaluated to the same
internal structure.  That's why the '+' works because '+' is a function.  If
'spin-plot' is a macro then it depends on how the macro treats that argument.
That is, if 'spin-plot' is a macro it would see

        (spin-plot (quote (a b c)))

versus

        (spin-plot (list a b c))

which are two very different things if the macro decides to not evaluate
them and does some strange thing with the constant list argument.  You can
test if 'spin-plot' is a macro by typing

        (macro-function 'spin-plot)

if it returns non-NIL then 'spin-plot' is a macro and may explain the strange
behavior.



        
-- 

William P. Vrotney - vrotney@netcom.com
