Kawa Version 0.3 Compliance Table

## Conformance to R4RS:

Procedure | Implemented/Version | Notes
Section 4.1 | Primitive expressions types
Section 4.1.1 | Variable Expressions
Section 4.1.2 | Literal Expressions
quote | yes/0.1 |
Section 4.1.3 | Procedure calls
Section 4.1.4 | Lambda Expressions
lambda | yes/0.1 |
Section 4.1.5 | Conditionals
if | yes/0.1 |
Section 4.1.6 | Assignments
set! | yes/0.1 |
Section 4.2 | Derived expressions types
Section 4.2.1 | Conditionals
cond | yes/0.3 |
case | yes/1.0 |
and | yes/0.1 |
or | yes/0.1 |
Section 4.2.2 | Binding constructs
let | yes/0.1 |
let* | yes/0.3 |
letrec | yes/0.3 |
Section 4.2.3 | Sequencing
begin | yes/0.1 |
Section 4.2.4 | Iteration
do | yes/0.4 |
named let | yes/0.4 |
Section 4.2.5 | Sequencing
delay | yes/1.0 |
Section 4.2.6 | Quasiquotation
quasiquote | yes/0.4 |
unquote | yes/0.4 |
unquote-splicing | yes/0.4 |
Section 5 | Program Structure
Section 5.1 | Programs
Section 5.2 | Definitions
define | yes/0.1 |
Section 6 | Standard procedures
Section 6.1 | Booleans
not | yes/0.1 |
boolean? | yes/0.1 |
Section 6.2 | Equivalence predicates
eqv? | yes/0.1 |
eq? | yes/0.1 |
equal? | yes/0.1 |
Section 6.3 | Pairs and lists
pair? | yes/0.1 |
cons | yes/0.1 |
car | yes/0.1 |
cdr | yes/0.1 |
set-car! | yes/0.1 |
set-cdr! | yes/0.1 |
caar | yes/0.1 |
cadr | yes/0.1 |
cdar | yes/0.1 |
cddr | yes/0.1 |
caaar | yes/0.1 |
caadr | yes/0.1 |
cadar | yes/0.1 |
caddr | yes/0.1 |
cdaar | yes/0.1 |
cdadr | yes/0.1 |
cddar | yes/0.1 |
cdddr | yes/0.1 |
caaaar | yes/0.1 |
caaadr | yes/0.1 |
caadar | yes/0.1 |
caaddr | yes/0.1 |
cadaar | yes/0.1 |
cadadr | yes/0.1 |
caddar | yes/0.1 |
cadddr | yes/0.1 |
cdaaar | yes/0.1 |
cdaadr | yes/0.1 |
cdadar | yes/0.1 |
cdaddr | yes/0.1 |
cddaar | yes/0.1 |
cddadr | yes/0.1 |
cdddar | yes/0.1 |
cddddr | yes/0.1 |
null? | yes/0.1 |
list? | yes/0.1 |
list | yes/0.1 |
length | yes/0.1 |
append | yes/0.1 |
reverse | yes/0.3 |
list-tail | yes/0.1 |
list-ref | yes/0.1 |
memq | yes/0.1 |
memv | yes/0.1 |
member | yes/0.1 |
assq | yes/0.1 |
assv | yes/0.1 |
assoc | yes/0.1 |
Section 6.4 | Symbols
symbol? | yes/0.1 |
symbol->string | yes/0.1 |
string->symbol | yes/0.1 |
Section 6.5 | Numbers
number? | yes/0.1 |
complex? | yes/1.0 |
real? | yes/0.1 |
rational? | yes/1.0 |
integer? | yes/0.1 |
exact? | yes/0.1 |
inexact? | yes/0.1 |
= | yes/0.1 |
< | yes/0.1 |
> | yes/0.1 |
<= | yes/0.1 |
>= | yes/0.1 |
zero? | yes/0.1 |
positive? | yes/0.1 |
negative? | yes/0.1 |
odd? | yes/1.0 |
even? | yes/1.0 |
max | yes/1.0 |
min | yes/1.0 |
+ | yes/0.1 |
* | yes/0.1 |
- | yes/0.1 |
/ | yes/0.1 |
abs | yes/0.2 |
quotient | yes/1.0 |
remainder | yes/1.0 |
modulo | yes/1.0 |
gcd | y/1.0es |
lcm | yes/1.0 |
numerator | yes |
denominator | yes |
floor | yes/1.0 |
ceiling | yes/1.0 |
truncate | yes/1.0 |
round | yes/1.0 |
rationalize | yes/1.1 |
exp | yes/1.0 |
log | yes/1.0 |
sin | yes/1.0 | Real numbers only
cos | yes/1.0 | Real numbers only
tan | yes/1.0 | Real numbers only
asin | yes/1.0 | Real numbers only
acos | yes/1.0 | Real numbers only
atan | yes/1.0 | Real numbers only
sqrt | yes/1.0 |
expt | yes/1.0 |
imag-part | yes/1.2 |
magnitude | yes/1.2 |
angle | yes/1.2 |
exact->inexact | yes/1.0 |
inexact->exact | yes/1.0 |
number->string | yes/1.0 |
string->number | yes/1.0 |
Section 6.6 | Characters
char? | yes/0.1 |
char=? | yes/0.1 |
charyes/0.1 |
char<=? | yes/0.1 |
char>? | yes/0.1 |
char>=? | yes/0.1 |
char-ci=? | yes/0.3 |
char-ciyes/0.3 |
char-ci<=? | yes/0.3 |
char-ci>? | yes/0.3 |
char-ci>=? | yes/0.3 |
char-alphabetic? | yes/0.3 |
char-numeric? | yes/0.3 |
char-whitespace? | yes/0.3 |
char-upper-case? | yes/0.3 |
char-lower-case? | yes/0.3 |
char->integer | yes/0.3 |
integer->char | yes/0.3 |
Section 6.7 | Strings
string? | yes/0.1 |
make-string | yes/0.1 |
string | yes/0.1 |
string-length | yes/0.1 |
string-ref | yes/0.3 |
string-set! | yes/0.1 |
string=? | yes/0.3 |
stringyes/0.3 |
string>? | yes/0.3 |
string<=? | yes/0.3 |
string>=? | yes/0.3 |
string-ci=? | yes/0.3 |
string-ciyes/0.3 |
string-ci>? | yes/0.3 |
string-ci<=? | yes/0.3 |
string-ci>=? | yes/0.3 |
substring | yes/0.3 |
string->list | yes/0.3 |
list->string | yes/0.3 |
string-copy | yes/0.3 |
string-fill! | yes/0.3 |
Section 6.8 | Vectors
vector? | yes/0.1 |
make-vector | yes/0.1 |
vector | yes/0.1 |
vector-length | yes/0.1 |
vector-ref | yes/0.1 |
vector-set! | yes/0.1 |
vector->list | yes/0.3 |
list->vector | yes/0.3 |
vector-fill! | yes/0.3 |
Section 6.9 | Control features
procedure? | yes/0.1 |
apply | yes/0.1 |
map | yes/0.3 |
for-each | yes/0.3 |
force | yes/0.4 |
call-with-current-continuation | restricted/0.3 | Only "upward"
Section 6.10 | Input and output
call-with-input-file | yes/0.3 |
call-with-output-file | yes/0.3 |
input-port? | yes/0.3 |
output-port? | yes/0.3 |
current-input-port | yes/0.3 |
current-output-port | yes/0.3 |
with-input-from-file | yes/0.3 |
with-output-to-file | yes/0.3 |
open-input-file | yes/0.3 |
open-output-file | yes/0.3 |
close-input-port | yes/0.3 |
close-output-port | yes/0.3 |
read | yes/0.3 |
read-char | yes/0.3 |
peek-char | yes/0.3 |
eof-object? | yes/0.3 |
char-ready? | yes/0.3 |
write | yes/0.3 |
display | yes/0.3 |
newline | yes/0.3 |
write-char | yes/0.3 |
load | yes/0.3 |
transcript-on | yes/1.6 |
transcript-off | yes/1.6 |

## Additional Features

Additional Features
values | yes/0.4 |
call-with-values | yes/0.4 |
define-syntax | yes/0.4 | literals are not hygienic
when | yes/0.1 |
unless | yes/0.1 |
exit | yes/0.4 |
vector-append | yes/0.4 |
call-with-input-string | yes/1.0 |
call-with-output-string | yes/1.0 |
eval | yes/1.1 | As accepted for R5RS
null-environment | yes/1.1 | As accepted for R5RS
scheme-report-environment | yes/1.1 | arg is 4 or 5
interaction-environment | yes/1.1 | As accepted for R5RS

## Additional Notes

Implementation Notes