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

Inconsistent syntax for DO

There are three descriptions of the syntax of DO in the report.  In section
4.2.4, the syntax is

	(do ((<variable> <init> <step>) ...)
	    (<test> <expression> ...)
	  <command> ...)

and the text makes it clear that (1) the <step>s are optional and (2) the
result of the form is unspecified if there are no <expression>s.

In sections 7.1.3 and 7.3, the syntax is

	(do ((<variable> <init> [<step>])*)
	    (<test> <sequence>)

(more or less) where <sequence> is defined as

	<command>* <expression>

The bug is that section 4.2.4 allows there to be no expressions after the test,
while the other two sections do not.  I don't particularly care which way it
gets resolved (though I slightly prefer the section 4.2.4 version), but this
inconsistency should get fixed in R5RS.