[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Nov 3 14:32:43 1999 
Subject:Re: Robin on lexical locals 
From:Robin Popplestone 
Volume-ID:991103.05 

Aaron said

> I suppose one problem is that a user may accidentally include a
> protected identifier because of leaving out a semi-colon, or

    define foo(p, q) -> z;
        lvars x = ..., y = ...,
        x + y -> z
    enddefine;


Which is why I always use my let construct which requires "in" to
terminate the list of variables being declared. Besides, it gives
POP a less antique look.


    define foo(p, q) -> z;
        let x = ..., y = ...,
        in
            x + y -> z
        endlet
    enddefine;

And, while I do still manage to remember "sysunprotect", 'taint clear that
your average user would. R.

[Incidentally, re. pdnargs - I remembered that an pdnargs of 0 makes
perfect sense as a variadic flag for Scheme 'cos all Scheme functions
with a definite arity have a pdnargs >= 1 (for, as in Poplog Common Lisp,
the number of actual parameters is passed as an argument).