[r6rs-discuss] [Formal] Equivalence predicate version of memp
I am posting this as an individual member of the Scheme
community. I am not speaking for the R6RS editors, and
this message should not be confused with the editors'
eventual formal response.
John Cowan wrote:
> Rather than introducing novel "forall" and "exists" procedures, the
> "any" and "every" procedures of SRFI-1 should be adopted, along
> with the language of SRFI-1 describing them. SRFI-1 is a very
> successful list library and should be used as the basis for
> selective inclusion of new list-related features in R6RS.
There are at least four differences between forall and
exists in the draft R6RS and every and any in SRFI-1:
1. The draft R6RS says the proc must take a single
argument when the lists are nonempty. I hope this is
an error in the draft R6RS; the proc should take as
many arguments as there are lists.
2. The draft R6RS does not specify the behavior of
forall when the proc returns true values other than #t.
I hope this is an error in the draft R6RS; all true
values should be treated the same.
3. SRFI-1 allows the list arguments to have different
lengths. So far as I can tell, the draft R6RS neither
allows that nor forbids it. I fear this was an oversight
in the draft R6RS.
4. The names are different.
I welcome the change of name from "any" to "exists",
because the word "any" is ambiguous. If I say you
should be able to run a portable R6RS program in any
implementation that conforms to the R6RS, am I saying
there exists an implementation that conforms to the
R6RS and in which the program will run? No, I am
saying the program should run in every system that
conforms to the R6RS, even if no such systems have
yet been constructed. The names used in the draft
R6RS are unambiguous.
Will
Received on Thu Sep 28 2006 - 12:43:36 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC