Kawa

Kawa, the Java-based Scheme System

Homepage: http://www.gnu.org/software/kawa/

GitLab: https://gitlab.com/kashell/Kawa/

Implementing SRFIs: SRFI-0 SRFI-1 SRFI-2 SRFI-4 SRFI-6 SRFI-8 SRFI-9 SRFI-10 SRFI-11 SRFI-13 SRFI-14 SRFI-16 SRFI-17 SRFI-23 SRFI-25 SRFI-26 SRFI-28 SRFI-30 SRFI-35 SRFI-37 SRFI-38 SRFI-39 SRFI-41 SRFI-45 SRFI-60 SRFI-62 SRFI-64 SRFI-69 SRFI-87 SRFI-88 SRFI-95 SRFI-97 SRFI-98 SRFI-101 SRFI-107 SRFI-108 SRFI-109 SRFI-118 SRFI-140 SRFI-163 SRFI-164 SRFI-197


Syntax and conditional compilation

defmacro, gentemp

Multiple values

let-values, let*-values, receive, values-append

Special named constants

#!optional, #!rest, #!key, #!eof?, #!void?, #!null

Keywords

keyword?, keyword->string, string->keyword

Procedures

constant-fold?, procedure-property?, set-procedure-property!?, define-procedure?, make-procedure?,

Numbers

Quantities

Like '10pt' or '5cm'. Generalization of the quantities in DSSSL.

quantity??, quantity->number?, quantity->unit?, make-quantity?, define-base-unit?, define-unit?

Extended Number Operations

quotient, remainder, modulo - extended to arbitrary real numbers

Logical number operations

logand, logior, logxor, lognot, logop?, logtest, logbit?, arithmetic-shift, ash, logcount, integer-length, bit-extract.

Data structure

Lists

reverse!

Strings

string-upcase, string-downcase, string-capitalize, string-upcase!, string-downcase!, string-capitalize!

Multi-dimensional arrays

Like SRFI-25.

Uniform vectors

Like SRFI-4

Hash tables

make-hash-table, hash-table?, alist->hash-table, hash-table-equivalence-function, hash-table-hash-function, hash-table-ref, hash-table-ref/default, hash-table-set!, hash-table-delete!, hash-table-exists?, hash-table-update!, hash-table-update!/default, hash-table-size, hash-table-keys, hash-table-values, hash-table-walk, hash-table-fold, hash-table->alist, hash-table-copy, hash-table-merge!, hash, string-hash, string-ci-hash, hash-by-identity

Exception handling

catch, throw, error, primitive-throw, try-finally, try-catch?, dynamic-wind

Eval and environments

eval, environment-bound??, fluid-let, base-uri?, load-relative?

Locations

location?, define-alias?

Debugging

trace, untrace

Threads

future?, force, runnable?, sleep

Processes

make-process?, system, command-parse?, tokenize-string-to-string-array?

Miscellaneous

scheme-implementation-version?, command-line-arguments, home-directory, exit, scheme-window?, when, unless, vector-append, instance??, as?, synchronized?

Input, output, files

Types

Object, classes and modules

Working with XML and HTML