STklos Reference Manual |
|
The Scheme Request for Implementation (SRFI) process grew out of the Scheme Workshop held in Baltimore, MD, on September 26, 1998, where the attendees considered a number of proposals for standardized feature sets for inclusion in Scheme implementations. Many of the proposals received overwhelming support in a series of straw votes. Along with this there was concern that the next Revised Report would not be produced for several years and this would prevent the timely implementation of standardized approaches to several important problems and needs in the Scheme community. Only the implemented SRFIs are (briefly) presented here. For further information on each SRFI, please look at the official SRFI site. SRFI-0 -- Feature-based conditional expansion constructSRFI-0 defines the STklos Furthermore, the feature identifier stklos is defined for application which need to know on which Scheme implementation they are running on. SRFI-1 -- List LibrarySRFI-1 defines an extensive library for list manipulation. The implementation used in STklos is based on the reference implementation from Olin Shivers. To use, SRFI-1 you need to insert the following expression
in your code or uses the SRFI-2 -- AND-LET*: an AND with local bindings, a guarded LET* special formSRFI-2 defines an and form with local binding which acts as a guarded let*. To use, SRFI-2 you need to insert the following expression
in your code or uses the SRFI-4 -- Homogeneous numeric vector datatypesSRFI-4 defines a set of data types for vectors whose element are of the same numeric type (homogeneous vectors). To use SRFI-4, you need to insert the following expression
in your code or uses the SRFI-6 -- Basic String PortsSRFI-6 is fully supported and is completely
described in this document (procedures
SRFI-7 -- Feature-based program configuration languageSRFI-7 is fully supported. To use SRFI-7, you need to insert the following expression
in your code or uses the SRFI-8 -- Receive: Binding to multiple valuesSRFI-8 is fully supported and is completely
described in this document (special form SRFI-9 -- Defining Record TypesSRFI-9 is fully supported (the implementation uses STklos classes to implement SRFI-9 records). To use SRFI-9, you need to insert the following expression
in your code or uses the SRFI-10 -- Sharp Comma External FormSRFI-10 is fully supported. This SRFI extends the
STklos reader with the " SRFI-11 -- Syntax for receiving multiple valuesSRFI-11 is fully supported. To use SRFI-11, you need to insert the following expression
in your code or uses the SRFI-13 -- String LibrarySRFI-13 is fully supported. To use SRFI-13, you need to insert the following expression
in your code or uses the SRFI-14 -- Character-Set LibrarySRFI-14 is fully supported. To use SRFI-14, you need to insert the following expression
in your code or uses the SRFI-16 -- Syntax for procedures of variable aritySRFI-16 is fully supported and is completely
described in this document (procedure SRFI-17 -- Generalized set!SRFI-17 is fully supported and is completely
described in this document (procedures
in your code (or the use of the SRFI-18 -- Multithreading supportSRFI-18 is fully supported and is completely described in this document SRFI-22 -- Running Scheme Scripts on UnixSRFI-22 describes basic prerequisites for running Scheme programs as Unix scripts in a uniform way. Specifically, it describes:
SRFI-22 (Running Scheme Scripts on Unix) recommends to invoke the Scheme script interpreter from the script via a /usr/bin/env trampoline, like this: where <executable> can recover several specified names.
STklos uses only the name stklos-script for
<executable> .Here is an example of the classical
SRFI-23 -- Error reporting mechanismSRFI-23 is fully supported. See the
documentation of the (ref :mark "error") primitive form more
information (in fact STklos SRFI-26 -- Notation for Specializing Parameters without CurryingSRFI-26 is fully supported. To use SRFI-31, you need to insert the following expression
in your code or uses the SRFI-27 -- Source of random bitsSRFI-27 is fully supported. See random-integer and random-real. SRFI-28 -- Basic Format StringsSRFI-28 is fully supported. See the
documentation of the format primitive form more
information (in fact STklos SRFI-30 -- Nested Multi-line CommentsSRFI-30 is fully supported by STklos reader. SRFI-31 -- A special form for recursive evaluationSRFI-31 is fully supported. To use SRFI-31, you need to insert the following expression
in your code or uses the SRFI-34 -- Exception Handling for ProgramsSRFI-34 is fully supported and is completely
described in this document (see SRFI-35 -- ConditionsSRFI-35 is fully supported. To use SRFI-35, you need to insert the following expression
in your code or uses the SRFI-36 -- I/O ConditionsSRFI-36 is fully supported. To use SRFI-36, you need to insert the following expression
in your code or uses the SRFI-38 -- External representation of shared structuresSRFI-38 is fully supported by STklos reader. SRFI-39 -- Parameters objectsSRFI-39 is fully supported and is completely described in this document (procedures make-parameter and parameterize). SRFI-45 -- Optional positional and named parametersSRFI-45 is fully supported. To use SRFI-45, you need to insert the following expression
in your code or uses the SRFI-48 -- Intermediate Format StringsSRFI-48 is fully supported and is completely
described in this document (procedure SRFI-55 -- Require-extensionSRFI-55 is fully supported and is completely described in this document (procedure require-extension). Furthermore, STklos also accepts the symbols defined in
figure 3 in a
SRFI-59 -- VicinitySRFI-59 is fully supported. To use SRFI-59, you need to insert the following expression
in your code or uses the SRFI-60 -- Integers as bitsSRFI-60 is fully supported. To use SRFI-60, you need to insert the following expression
in your code or uses the SRFI-62 -- S-expression commentsSRFI-62 is fully supported. See Comments SRFI-66 -- Octet VectorsSRFI-66 is fully supported. To use SRFI-66, you need to insert the following expression
in your code or uses the SRFI-69 -- Basic Hash TablesSRFI-69 is fully supported. Note that the
default comparison function in STklos is
in your code or uses the SRFI-70 -- NumbersSRFI-70 is fully supported. SRFI-74 -- Octet-Addressed Binary BlocksSRFI-74 is fully supported. To use SRFI-74, you need to insert the following expression
in your code or uses the SRFI-88 -- Keyword ObjectsSRFI-88 is fully supported. The only difference between the keywords defined in the SRFI document and the STklos keywords is on the zero-length keyword: in STklos, the keyword : is equivalent to the keyword ||:, whereas the srfi considers that : is not a keyword but a symbol. SRFI-89 -- Optional Positional and Named ParametersSRFI-89 is fully supported. To use SRFI-89, you need to insert the following expression
in your code or uses the SRFI-96 -- SLIB PrerequisitesSRFI-96 is fully supported. To use SRFI-96, you need to insert the following expression
in your code or uses the SRFI-96 -- SLIB PrerequisitesSRFI-96 is fully supported and is completely
described in this document (procedures
SRFI-100 -- define-lambda-objectSRFI-100 is fully supported. To use SRFI-100, you need to insert the following expression
in your code or uses the |