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.

Source for wiki ArgumentOrder version 4

author

cowan

comment


    

ipnr

127.11.51.1

name

ArgumentOrder

readonly

0

text

This is a test of the order in which Scheme REPLs evaluate the arguments of a procedure call.  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

time

2014-08-20 22:57:46

version

4