Brian Harvey scripsit:

> I have no argument with the details of the notation, but could you
> please provide some explanation for why you think this belongs in
> Small Scheme?  As you point out, it solves a limited class of problems,

I should rather say that it provides a imperfect solution to a rather
general problem: how to construct things.  The basic Scheme aggregate
datatypes have three basic constructors: the make-<type> procedure, which
creates an aggregate using some appropriate parameters such as length
and initial value for all elements; the <type> procedure, which accepts
an arbitrary number of arguments and creates the collection from them;
and the literal form, which directly expresses an immutable aggregate
using some idiosyncratic lexical syntax.  Furthermore, the object has
a print syntax which equals the lexical syntax.

Adding this sort of lexical syntax extension means that user-defined
(in practice, library-defined) types are also first-class in this way.
It's easy to write make-foo and foo procedures, but not so easy to write
a plausible literal syntax for foos.  With the #v hack and the record
printer, you get the nearest thing to it.

> rather than elucidating the practical working out of some brilliant
> general principle.

Alas, my inventions don't run to that.

(Hmm.  Why is there no (make-list n [init])?

-- 
John Cowan              [email protected]          http://www.ccil.org/~cowan
Historians aren't constantly confronted with people who carry on
self-confidently about the rule against adultery in the sixth amendment to
the Declamation of Independence, as written by Benjamin Hamilton. Computer
scientists aren't always having to correct people who make bold assertions
about the value of Objectivist Programming, as examplified in the HCNL
entities stored in Relaxational Databases.  --Mark Liberman

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to