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

Re: Various comments

This page is part of the web mail archives of SRFI 93 from before July 7th, 2015. The new archives for SRFI 93 contain all messages, not just those from before July 7th, 2015.

At Sat, 24 Jun 2006 17:38:09 +0200, Jorgen Schaefer wrote:
> dyb@xxxxxxxxxxxxxx writes:
> >> Section 3 mentions "singleton identifiers" as a possible form for
> >> syntax abstractions, and refers to section 3.6 for more information. I
> >> couldn't find this in 3.6.
> >
> > This should probably have been a reference to Section 3.4, which mentions
> > what happens when a keyword appears in ``any other definition or
> > expression context,'' i.e., not in the first position of a list-structured
> > input form.
> So (+ 2 two) could very well cause a side effect, if TWO is
> syntax.
> I have a serious problem with this. It makes understanding
> programs more confusing. So far, in Scheme, I know that (foo ...)
> is a form that does something, and to find out what it does, I
> need to know what FOO does. If something does not show up at the
> first position in a list, it's a variable reference (or, very
> rarely, a specific syntactic keyword similar to ELSE; but this
> only within the appropriate macro).
> This feature means _any_ symbol could cause _anything_ to happen.
> This makes programs much more difficult to understand, and this
> for the sole reason of saving one to write two parens. I don't
> think this is worth it.

Seems like a pretty abstract argument, esp. when this seems to be
common practice and without it, one cannot implement classes or units
as macros.