This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home. For a version of this page that may be more recent, see ArgumentOrder in WG2's repo for R7RS-large.

Argument­Order

cowan
2014-01-27 01:19:39
3history
source

This is a test of the order in which Scheme REPLs evaluate constant arguments. It doesn't necessarily apply when arguments have different levels of complexity, nor does it apply to compiled code. The test is ((lambda x x) (display "l") (display "t") (display "r")). In some cases, side-effecting procedures other than display were used.

Displays ltr: Racket, Gauche, Gambit, Chicken, Bigloo, Scheme48/scsh, Kawa, SCM, Vicare, Ypsilon, Mosh, IronScheme, NexJ, STklos, KSi, SigScheme, Scheme 9, RScheme, S7, Rep, Schemik, Elk, UMB, Llava, Sizzle, FemtoLisp, Dfsch, Inlab, Foment

Displays rtl: MIT, BDC, XLisp, SXM, Chibi

Unpredictable order: Chez

Undeterminable order (no side effects): Owl Lisp

The following C code was also tested:

# include <stdio.h> int yotz(int a, int b, int c) { return a + b + c; } int main() { yotz(printf("l"), printf("t"), printf("r")); }

Displays ltr: Clang

Displays rtl: GCC