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).
|