[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(define x)

    Date: Mon, 13 Jun 88 12:24:39 PDT
    From: Pavel.pa@Xerox.COM
    To:   Jonathan A Rees <JAR@AI.AI.MIT.EDU>
    cc:   rrrs-authors@MC.LCS.MIT.EDU
    Re:   (define x)

    Presumably the only use for this is to avoid having to pick a value
    in those cases where it will not be used?


Also, I forgot to mention:  in order to allow implementations to signal
errors when the variable is referenced after such a DEFINE but before a
SET! of the variable, it needs to be specified that it is an error to so
refer to the variable.

We need to decide whether this is to make sense only for top-level
defines or for internal defines as well.  If for internal defines, the
desugaring into LETREC has to be given; that would probably mean that
LETREC would have to be extended (e.g. (letrec ((x) (y)) ...)); and that
seems like a bad idea to me, although I don't feel strongly; so I'd
suggest making it a special case for top level.  Top level defines are
already sufficiently different from internal ones (e.g. they are
evaluated sequentially, and may be interspersed with expressions) that
this doesn't seem too terrible.