From: Dorai Sitaram
Subject: :keywords as function and macro names?
Date: 
Message-ID: <4kbb97$h21@larry.rice.edu>
I note that CLISP lets me use :keywords as function and
macro names, e.g.,

(defun :cons ...)
(defmacro :let ...)

are allowed.  But is this portable usage?

--d

From: dcwhite
Subject: Re: :keywords as function and macro names?
Date: 
Message-ID: <4kfd4b$frd@uhura.phoenix.net>
In article <··········@larry.rice.edu>,
   ·····@cs.rice.edu (Dorai Sitaram) wrote:
>
>I note that CLISP lets me use :keywords as function and
>macro names, e.g.,
>
>(defun :cons ...)
>(defmacro :let ...)
>
>are allowed.  But is this portable usage?
>
>--d

If you had muLISP, from Soft Warehouse, you would see 
something different.  This system lets you totally redefine 
primitives by using the method you listed.  Thus, if (BREAK)	
doesn't do everything that you want, it is simple to redefine 
it.  This functionality occasionally comes in handy.

·······@phoenix.net
From: William Paul Vrotney
Subject: Re: :keywords as function and macro names?
Date: 
Message-ID: <vrotneyDpMG6I.1x6@netcom.com>
In article <··········@larry.rice.edu> ·····@cs.rice.edu (Dorai Sitaram) writes:


> 
> I note that CLISP lets me use :keywords as function and
> macro names, e.g.,
> 
> (defun :cons ...)
> (defmacro :let ...)
> 
> are allowed.  But is this portable usage?
> 
> --d

Yes.  Keyword symbols are guaranteed to be just like any other symbols
except for two things: they are all external to the keyword package and they
are all by default constants that evaluate to themselves.  The first is
something you should be wary of since all such functions defined will be
external.  The second only reserves the SYMBOL-VALUE property of a keyword
symbol, so you are free to do portably whatever you want with the other
built in properties SYMBOL-FUNCTION and SYMBOL-PLIST.

However, if you are going to do this you should probably have a good reason
to do this over creating a separate package since if two programs did this
their symbols would collide because of the "all external" property.

-- 

William P. Vrotney - ·······@netcom.com