[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SAFIER%cgi.csnet: proposed modification to common lisp]
- To: firstname.lastname@example.org
- Subject: [SAFIER%cgi.csnet: proposed modification to common lisp]
- From: Skef Wholey <Skef@think.com>
- Date: Mon, 2 Feb 87 12:36 EST
- In-reply-to: <FAHLMAN.12275381487.BABYL@C.CS.CMU.EDU>
From: Scott <SAFIER%cgi.csnet at RELAY.CS.NET>
Re: proposed modification to common lisp
Proposal: the following functions be modified to include a parameter which
specifies a package:
read, read-delimited-list, read-preserving-white-space
This additional parameter could either be a keyword argument, or an optional
argument. If the package is not specified, the current package (*package*)
will be used as the default.
[...] Also, it is
burdensome for the common lisp programmar to create a local lexical
environment around input functions, simply to insure that any symbols created
during input are interned in the proper package. A package argument for these
input functions removes this burden.
1. These functions already have a just-barely managable number of
optional parameters, and adding another would push them over the
2. Converting them to use all keyword args might have been a good
idea three or four years ago, but isn't feasible now.
3. This functionality can be easily implemented at user level, with
a few macros.
By the way, Read-From-String probably belongs in the list above. It
already takes both optional and keyword arguments, so extending it along
with the others complicates (or simplifies, depending on how you look at
it) the situation a bit.
But how about this: introduce a new function, Parse, which is to Read as
Write is to Print -- a big fancy general-purpose I/O function that takes
all imaginable keyword arguments and Does The Right Thing. Whether or
not it would preserve whitespace would be one argument. We could either
leave Read-Delimited-List out of this, or add Parse-Delimited-List as