[r6rs-discuss] on rational 6.7 Compund library names

From: Anton van Straaten <anton>
Date: Tue, 26 Jun 2007 19:46:52 -0400

AndrevanTonder wrote:
> On Tue, 26 Jun 2007, Anton van Straaten wrote:
>
>> No, the reason I've already alluded to is that URIs don't fit in with
>> Scheme's approach to naming or symbolic abstraction.
>
>
> I am not in favour of URIs, but I think the same objection can be made to
> the current draft proposal of using a list of symbols, instead of an
> identifier, for naming.

If so, I think that the objection differs significantly in degree from
the objection to URIs. However, I don't agree with the objection in
this context.

The question of compound names was not addressed by R5RS Scheme, since
it has no record mechanism, and its macro system is unable to synthesize
single identifiers from a set of component names. One way of addressing
this was described by Oleg:

   http://okmij.org/ftp/Scheme/define-struct.html

...but that approach involved, more or less, lists of symbols, which is
quite consistent with the R6RS library naming approach.

It's also not unusual in Scheme programs to use a list of symbols as a
path identifying some value in a tree. The fact that such a mechanism
wasn't previously used in the language specification itself doesn't make
it any less Schemely. The Lisp/Scheme idea, expressed loosely, that
"code is data" argues for making it easy for programs to comprehend
Scheme code, and single identifiers synthesized from compound values
undermine that ability.

If the objection is that the R6RS record system performs such synthesis
anyway, I'd point out that the implicit naming mechanism responsible for
that is controversial, for the same sorts of reasons: that the
definitions of synthesized identifiers, and the fact that they are
synthesized, are not readily detected by a program processing the source
code.

Anton
Received on Tue Jun 26 2007 - 19:46:52 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC