System | 1.1 | 1.2 | 1.3 | 2.1 | 3.1 | 3.2 | 3.3 | 4.1 | 4.2 | 5.1 | 5.2 | 5.3 | 6.1 | 7.1 | 7.2 | 7.3 | 7.4 | 8.1 | Map |
Bigloo 2.5c | F | F | P | F | F | P | P | F | F | P | P | P | P | P | P | P | P | F | |
Chez 6.9 | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | call/cc |
Chicken 1.0 | Fn | Fn | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | call/cc |
Gauche 0.6.6 | F | F | P | P | P | P | ? | P | P | P | P | P | P | P | P | P | F | ? | |
Kawa 1.6.99 | F | F | F | F | P | P | P | P | P | P | P | P | P | F | F | F | F | P | F |
Larceny (*) | F | P | F | P | P | F | P | P | P | P | P | P | P | P | P | P | P | P | call/cc |
MIT-Scheme 7.7.1 | F | F | P | P | P | P | P | P | P | F | F | F | P | P | P | P | P | P | |
MzScheme 203 | F | F | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | |
Scheme48 (scsh 0.6.3) | F | F | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | call/cc |
SCM 5d7 | P | P | P | F | P | P | P | P | P | P | P | P | P | P | P | P | P | P | |
SISC 1.7.3 | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | P | call/cc, tr |
Key: Pass, Fail, ?=results unavailable, call/cc=System's map isn't affected by call/cc. tr=map is tail recursive.
Jeff Siskind points out that its possible to be both call/cc and
tail recursive, but the example he cites uses reverse after processing
the list. So map can be:
Pick two. In the above table, we've noted when a system is resistant to call/cc effects, and labeled systems that we know are tail recursive because the implementor has said so. Others in the list may be tail recursive.