Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!news.alpha.net!uwm.edu!vixen.cso.uiuc.edu!uchinews!kimbark!ab2r
From: ab2r@kimbark.uchicago.edu (Marshall Abrams)
Subject: Re: Why is `not' a procedure?
Message-ID: <1994Nov29.061955.14994@midway.uchicago.edu>
Sender: news@uchinews.uchicago.edu (News System)
Reply-To: ab2r@midway.uchicago.edu
Organization: University of Chicago
References: <3agfp4$hdb@agate.berkeley.edu> <9411180616.AA07717@conniver.media.mit.edu>
Date: Tue, 29 Nov 1994 06:19:55 GMT
Lines: 29

In article <9411180616.AA07717@conniver.media.mit.edu> mt@media.mit.EDU (Michael Travers) writes:
>    
>    How would anyone know whether NOT were a special form or not?  What test
>    could I perform as a Scheme user to find out?
>
>Type NOT to the listener and see whether you get something that looks
>like a procedure or an error.  Names that denote special forms are
>not allowed to be used as variables.

Many Schemes function this way, but could you point to where in
R4RS this restriction is made?  SCM, for example, which claims to
conform to all required features of R4RS, does allow special
forms to be used as variables:
    > and
    #<macro! #<primitive-procedure and>>
    > (set! and 'foo)
    #<unspecified>
    > and
    foo
    > (and #f #t)

    ERROR: Wrong type to apply:  foo
    ; in top level environment.
    > 

-- 

Marshall Abrams                              ab2r@midway.uchicago.edu

