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