Kawa implements the following semi-standard SRFIs (Scheme Request for Implementation):
SRFI 0: Feature-based conditional expansion construct,
using cond-expand
- see Syntax and conditional compilation.
SRFI 2: AND-LET*: an AND with local bindings, a guarded LET* special form.
SRFI 4: Homogeneous numeric vector datatypes - see Uniform vectors.
SRFI 8: receive
: Binding to multiple values - see Multiple values.
SRFI 9: Defining Record Types, using define-record-type
- see Record types.
SRFI 10: #,
external form for special named types.
This is deprecated for various reasons, including that it conflicts
with syntax-case unsyntax
.
Better to use srfi-108 Named quasi-literals.
SRFI 11: Syntax for receiving multiple values,
using let-values
and let*-value
- see Multiple values.
SRFI 13: String Library. Needs some polishing.
SRFI 14: Character-set Library - see Character sets.
SRFI 16: Syntax for procedures of variable arity,
using case-lambda
.
SRFI 23: Error reporting mechanism, using error
- see Exceptions.
SRFI 26: Notation for Specializing Parameters without Currying - see Procedures.
SRFI 30: Nested Multi-line Comments.
SRFI 35: Conditions.
SRFI 37: args-fold
- a program argument processor, if (require 'args-fold)
.
SRFI 38: External Representation for Data With Shared Structure.
The read-with-shared-structure
is missing, but subsumed by read
.
SRFI 39: See Parameter objects.
SRFI 45: Primitives for Expressing Iterative Lazy Algorithms - see Lazy evaluation.
SRFI 60: Integers as Bits. - see Logical Number Operations.
SRFI 62: S-expression comments.
SRFI 64: A Scheme API for test suites.
SRFI 69: Basic hash tables - see Hash tables.
SRFI 87: =>
in case
clauses.
SRFI 95: Sorting and Merging.
SRFI 97: Names for SRFI Libraries.
SRFI 98: An interface to access environment variables
SRFI 101: Purely Functional Random-Access Pairs and Lists - see SRFI-101.
SRFI 107: XML reader syntax - see XML literals.
SRFI 108: Named quasi-literal constructors - see Named quasi-literals.
SRFI-109: Extended string quasi-literals - see string quasi-literals.
SRFI-118: Simple adjustable-size strings (string-append!
and string-replace!
).
SRFI-140: Immutable Strings.
SRFI-163: Enhanced array literals.
SRFI-164: Enhanced multi-dimensional Arrays