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

Re: I/O proposal

(This note should have come before the others, as it was
referenced in one of them -- sorry.)

>    I disagree -- proliferation of special forms is a communicable disease.
Addition of new syntax where new syntax makes sense is never
harmful.  It's much more clumsy to use a function when what
really makes sense is a proceedure.  Ninety-nine times out
of a hundred people are going to type:
    (with-output-to-file "fudmich"
        (lambda ()
Adding an extra level of complexity (not to mention an extra
level of nesting).
If we continue to use functions where syntax is appropriate,
pretty soon someone will suggest that the reader syntax
"#'exp" should mean "(lambda () exp)".
If keeping the language small is the goal, proliferation of
functions is more harmful; the ``core'' set must include only
special forms that cannot be implemented using syntactic-
extension, plus all of the functions.  I can preprocess a
program on my system to take out the syntax before sending
it to you to run it on your system, but you must have the
functions I call (unless I send them all to you).
Granted, with this particular special form, the standard does
not give us enough information to write it as syntax; this is
a shortcoming in the standard, not in syntactic-extension.