[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Date: Sat, 25 Jun 88 17:46 EDT
From: Robert Halstead <rhh@VX.LCS.MIT.EDU>
From: Jonathan A Rees <JAR@AI.AI.MIT.EDU>
I would hate to see some functionality become available through define
that was not available through letrec, so I would advise adopting
(define x) ONLY if letrec is also extended so that
(letrec ((x) ...) ...)
(letrec ((x <unassigned>) ...) ...).
For orthogonality's sake, this should also, I believe, require
(let ((x) ...) ...)
(let ((x <unassigned>) ...) ...),
and similarly for let*, named let (?), and do (??). Consider this proposed,
and please talk me out of this madness.
I would like to support the proposal as a perspicuous way to introduce a
variable whose purpose in life is to be side-effected. -Bert Halstead
That's one possible use, but another (unforunately incompatible) use also
This morning I heard a news announcement the Louisiana had passed a law
banning a set of "obscene" words (about five in all, I think) from appearing
on bumper stickers (except in typefaces 1/8 inch high or smaller!).
I suggest that (define <name>) introduce a variable whose purpose in life
should be to -never- be assigned or referenced in any way. That way, when
Louisiana lawmakers figure out what words are inappropriate for use in
programs, they can just DEFINE them away...
- (define x)
- From: Robert Halstead <rhh@VX.LCS.MIT.EDU>