Rationale:

<standard-Clingerism>

Scheme is a family of language designs attempting to realize the above
"Clinger ideal" for concrete programming. Like most families, there is
a lot of in-fighting, back-stabbing, sulking, skulking, and outright
thumping while Mom's not looking. But there is a similarity that runs
deeper than surface syntax or the libraries chosen. This document is
an attempt to expose Scheme's common genetic heritage - without
getting into the details of our private parts. Given the fractious
nature of the community it seems only appropriate that Thing Zero
itself has two genders: Thing0-Family (Mother Scheme) and
Thing0-Strict (Father Scheme).

Thing0-Family:

A programming language that:

Gene 1 - uses fully parenthesized prefix notation
Gene 2 - doesn't punish programmers for writing infinitely deep
recursions if it can be helped
Gene 3 - provides first-class and higher-order functions
Gene 4 - provides a universal union type with predicates to
distinguish types at run-time
Gene 5 - is lexically scoped

shall be considered a sufficiently conformant to Thing0-family to not
need an invitation to sleep over. Certain languages that have
mutations of Gene1 are clearly such close cousins that they are
welcome to show up for dinner unannounced. There is a puritanical
branch of the family that has some mutations to Gene 4 as well, but
they tend to shun Thing0-Family events unless they look like too much
fun is happening to stay away.

Thing0-Strict:

A programming language that is definitely a member of Thing0-Family but also:

Gene  6 - provides full TCO and is safe-for-space
Gene  7 - uses a call-by-value evaluation strategy
Gene  8 - provides macro-programming facilities based on program structure
Gene  9 - is able to reify continuations
Gene 10 - provides a syntax for aggregate data

shall be considered sufficiently conformant to Thing0-Strict to not
get lectured about tucking in its shirt before going out in public.
Thing0-Strict family members are expected to be able to help out
around the place, especially when it comes to the care and feeding of
undergrads. Thing0-Strict family members that provide a decent numeric
implementation will be allowed the intoxicating beverage of their
choice with dinner.

Coda:

While this document is presented with a light tone, it is also quite
serious. Thing0-Strict would make a good starting point for Thing1,
which would ideally *be no larger* than R4RS. The Thing0
specifications are intended to acknowledge the community's debt to the
important, if idiosyncratic implementations of the past while
providing much needed room for experimentation in the future.

david rush
-- 
GPG Public key at http://cyber-rush.org/drr/gpg-public-key.txt

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

Reply via email to