[r6rs-discuss] Implicitly Concurrent Scheme

John Cowan cowan at ccil.org
Thu Nov 12 16:40:35 EST 2009


Aubrey Jaffer scripsit:

> I am suggesting the following restriction be *removed* from the
> "Procedure calls" section of RnRS:
> 
>     _Note:_ Although the order of evaluation is otherwise unspecified,
>     the effect of any concurrent evaluation of the operator and
>     operand expressions is constrained to be consistent with some
>     sequential order of evaluation.  The order of evaluation may be
>     chosen differently for each procedure call.

[snip]

> Removing a restriction would seem to be justified solely on the basis
> of:
> 
>     Programming languages should be designed not by piling feature on
>     top of feature, but by removing the weaknesses and restrictions
>     that make additional features appear necessary.

This is a fine example of the rhetorical fallacy of equivocation.
The second quotation refers to removing restrictions on programmers.
The first quote imposes a restriction on implementations, partly for
the benefit of those same implementations, but mostly for the benefit
of programmers trying to reason about side effects.

R5RS has a restriction that the forms in a BEGIN must be evaluated
sequentially and in order.  Lifting this restriction would benefit some
uses, but would force programmers to devise a new way of doing things
sequentially and in order (like output), because they could no longer
rely on BEGIN.

Like all contracts, a spec specifies the agreements between implementers
and users.  Each accepts some restrictions.

-- 
Using RELAX NG compact syntax to        John Cowan <cowan at ccil.org>
develop schemas is one of the simple    http://www.ccil.org/~cowan
pleasures in life....
        --Jeni Tennison                 <cowan at ccil.org>



More information about the r6rs-discuss mailing list