Implemented SRFIs
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 1: List Library, if
(require 'list-lib) - see SRFI-1.
- SRFI 2: AND-LET*: an AND with local bindings, a guarded LET* special form.
- SRFI 4: Homogeneous numeric vector datatypes - see Uniform vectors.
- SRFI 6: Basic String Ports - see Ports.
- 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 17: Generalized
set! - see Locations.
- SRFI 23: Error reporting mechanism, using
error - see Exception handling.
- SRFI 25: Multi-dimensional Array Primitives - see Multi-dimensional Arrays.
- SRFI 26: Notation for Specializing Parameters without Currying - see Procedures.
- SRFI 28: Basic Format Strings - see Formatted Output (Common-Lisp-style).
- 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 41: Streams - see Streams - lazy lists.
- 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 88: Keyword objects - see Keywords.
- 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
- SRFI-197: Pipeline Operators.