Peter Bex scripsit:

> Hm, actually, I just noticed that in CHICKEN 4 this will
> *not* cause a runtime error, which is probably why we added
> the rewrites.  This is not correct according to R5RS.

Actually, either behavior is correct according to R5RS/R7RS.  It is
an error to supply too many or too few arguments to a standard
procedure, which means that users can't rely on what happens and
implementers can do what they like: report an error, extend the
behavior, or jump to Fishkill, N.Y.

There's some argument for (apply = list) to do the right thing if
list is length 0 or 1.  

Here's a quick investigation report.  Of my suite of 46 Schemes,
MIT, Gambit, Chicken, Guile, SCM, KSi, Sizzle all accept (=) and (= 1)
and return #t.  In addition, STklos, Chez, Vicare, Ypsilon, IronScheme,
JScheme, STklos, XLisp, Elk, Llava, SXM return #t to (= 1), and
FemtoLisp returns #f.

-- 
John Cowan          http://www.ccil.org/~cowan        co...@ccil.org
"Repeat this until 'update-mounts -v' shows no updates.
You may well have to log in to particular machines, hunt down
people who still have processes running, and kill them."

_______________________________________________
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to