My code uses the following language features; for each, some systems lack some features.
1 (let* ((a 2)(A (- a))) a) => 2 ; case sensitive! 2 call/cc ; the name, (not the function) is convenient 3 (if #t 7) ; (sort of important) 4 (λ () 3) ; convenient 5 scheme-report-environment; vital 6 (define ((add a) b) (+ a b)) ; convenient way to define a curried add. 7 (expt 2 100) ; bignums are needed when they are needed. 8 bitwise-and ; an SRFI1, 2, 4 & 6 are not required by R5RS.
Which systems have which features:
mzscheme 372 & 357 [1 2 3 4 5 6 7] http://download.plt-scheme.org/bundles/4.2.5/mz/mz-4.2.5-bin-i386-osx-mac.dmg MzScheme v4.2.5/bin/mzscheme [1 2 4 6 7] MzScheme v4.2.5/bin/plt-r5rs [3 5 6 7] MzScheme v4.2.5/bin/swindle [1 2 3 4 7(?)] DrRacket v5.3.6 [1 2 3 4 6 7] DrRacket v6.1.1 (#lang r5rs) [1 3 5 6 7] kawa 1.9.90 [1 2 3 5 7] MIT Scheme 9.1.1 [3 6 7] Scheme 48 (1.9.2) [3 5 7]N.B. PLT 352 & 372 yield 1/2+1/2i for (/ 1+i).
I run MzScheme 372 as follows:
By typing “./plt-r6rs ~/test” in a shell in /Volumes/MzScheme v4.2.5/MzScheme v4.2.5/bin , the program executes the file “~/test” which reads:
(import (rnrs)) (display 42) (newline)and sure enough 42 appears as terminal output. This is a poor interactive environment! The environment there does not define the symbol read-case-sensitive.
There are several terms used technically whose definitions I have not found such as ‘namespace’. They are used in explaining the logic of the system.
./configure make java kawa.replI got a REPL program that failed only feature 4. I have xcode installed on my Mac. I tested most of the repository test cases and they all passed.
I have not checked this out.