SRFI is a great libraries, so there is no reason not to support. Without exception Sagittarius also supports several SRFIs. The following list is the supported SRFI. Documents are not written for now. So if you need to refer the functions, please look for SRFI's site. I might write it later.
For now, I just put pointer to the SRFI's web site
SRFI number | Library name |
---|---|
SRFI-0 | (srfi :0 cond-expand) |
SRFI-1 | (srfi :1 lists) |
SRFI-2 | (srfi :2 and-let*) |
SRFI-4 | (srfi :4 numeric-vectors) ^{SRFI-4} |
SRFI-6 | (srfi :6 basic-string-ports) |
SRFI-8 | (srfi :8 receive) |
SRFI-11 | (srfi :11 let-values) |
SRFI-13 | (srfi :13 strings) |
SRFI-14 | (srfi :14 char-set) |
SRFI-16 | (srfi :16 case-lambda) |
SRFI-17 | (srfi :17 generalized-set!) |
SRFI-18 | (srfi :18 multithreading) |
SRFI-19 | (srfi :19 time) |
SRFI-22 | This SRFI does not provide any library. |
SRFI-23 | (srfi :23 error) |
SRFI-25 | (srfi :25 multi-dimensional-arrays) |
SRFI-26 | (srfi :26 cut) |
SRFI-27 | (srfi :27 random-bits) |
SRFI-29 | (srfi :27 localization) |
SRFI-31 | (srfi :31 rec) |
SRFI-37 | (srfi :37 args-fold) |
SRFI-38 | (srfi :38 with-shared-structure) |
SRFI-39 | (srfi :39 parameters) |
SRFI-41 | (srfi :41 streams) |
SRFI-42 | (srfi :42 eager-comprehensions) |
SRFI-43 | (srfi :43 vectors) |
SRFI-45 | (srfi :45 lazy) |
SRFI-49 | (srfi :49) |
SRFI-57 | (srfi :57 records) |
SRFI-60 | (srfi :60 integer-bits) |
SRFI-61 | (srfi :61 cond) ^{builtin} |
SRFI-64 | (srfi :64 testing) |
SRFI-69 | (srfi :69 basic-hash-tables) |
SRFI-78 | (srfi :78 lightweight-testing) |
SRFI-86 | (srfi :86 mu-and-nu) |
SRFI-87 | (srfi :87 case) |
SRFI-98 | (srfi :98 os-environment-variables) |
SRFI-99 | (srfi :99 records) |
SRFI-100 | (srfi :100 define-lambda-object) ^{longname} |
SRFI-101 | (srfi :101 random-access-lists) |
SRFI-105 | (srfi :105) ^{SRFI-105} |
SRFI-106 | (srfi :106 socket) |
SRFI-110 | (srfi :110) ^{SRFI-110} |
SRFI-111 | (srfi :111 boxes) ^{longname} |
SRFI-112 | (srfi :112 inquery) ^{longname} |
SRFI-113 | (srfi :113 sets) ^{longname} |
SRFI-114 | (srfi :114 comparators) ^{longname} |
SRFI-115 | (srfi :115 regex) ^{longname} |
SRFI-116 | (srfi :116 ilists) ^{longname} |
SRFI-117 | (srfi :117 list-queues) ^{longname} |
SRFI-120 | (srfi :120 timer) ^{longname} |
SRFI-121 | (srfi :121 generators) ^{longname} |
SRFI-123 | (srfi :123 generic-ref) |
SRFI-124 | (srfi :124 ephemerons) ^{longname} |
SRFI-125 | (srfi :125 hashtables) ^{longname} |
SRFI-126 | (srfi :126 r6rs-hashtables) ^{longname} |
SRFI-127 | (srfi :127 lazy-sequences) ^{longname} |
SRFI-128 | (srfi :128 comparators) ^{longname} |
SRFI-129 | (srfi :129 titlecase) ^{longname} |
SRFI-130 | (srfi :130 string-cursors) ^{longname} |
SRFI-131 | (srfi :131 records) ^{longname} |
SRFI-132 | (srfi :132 sorting) ^{longname} |
SRFI-133 | (srfi :133 vectors) ^{longname} |
SRFI-134 | (srfi :134 ideque) ^{longname} |
SRFI-135 | (srfi :135 texts) ^{longname} |
SRFI-139 | (srfi :139 syntax-parameters) ^{longname} |
SRFI-141 | (srfi :141 integer-division) ^{longname} |
SRFI-142 | (srfi :142 bitwise) ^{longname} |
SRFI-143 | (srfi :143 fixnums) ^{longname} |
SRFI-144 | (srfi :144 flonums) ^{longname} |
SRFI-145 | (srfi :145 assumptions) ^{longname} |
SRFI-146 | (srfi :146 mapping) ^{longname} and (srfi :146 hash) |
SRFI-151 | (srfi :151 bitwise-operations) ^{longname} |
SRFI-152 | (srfi :152 strings) |
SRFI-154 | (srfi :154 dynamic-extents) ^{longname} |
SRFI-156 | (srfi :156 predicate-combiners) ^{longname} |
SRFI-158 | (srfi :158 generators-and-accumulators) ^{longname} |
SRFI-159 | (srfi :159) |
SRFI-160 | (srfi :160) ^{SRFI-160} |
SRFI-193 | (srfi :193 command-line) ^{longname} |
SRFI-197 | (srfi :197 pipeline) ^{longname} |
SRFI-219 | (srfi :219 define)[^longname] ^{builtin} |
This SRFI also contains reader macro described below this section.
The library exports srfi-49-read
, srfi-49-load
procedures.
And also be able to replace reader, For more detail,
see (sagittarius reader) - reader macro library.
The syntax provided by this SRFI is supported by the builtin syntax. This SRFI can be used for portability.
The long name is Sagittarius specific and the specified library name is (srfi :_number_)
.
So for the portability it's better to use the specified one.
The long name is taken from the SRFI name.
The library exports curly-infix-read
and neoteric-read
procedures. These procedures read SRFI-105 the infix style code that
SRFI-105 specifying. And this also exports reader macros, you can
activate it with #!read-macro=srfi/:105
or #!read-macro=curly-infix
.
Even though the specification said it MUST support #!curly-infix
,
however the library just ignore and not activate the reader macros.
So you need to explicitly write the one mentioned above.
To keep your code portable between implementations that support this SRFI,
you need to write both style as following;
;; write both
#!read-macro=curly-infix
#!curly-infix
The order doesn't matter, Sagittarius just ignores the latter style.
The library exports a replacible reader. To use it write following hash-bang directives.
;; write both for compatibility
#!reader=sweet
#!sweet
The order doesn't matter, Sagittarius just ignores the latter style.
This library doesn't extend comparisons, thus it behaves as the SRFI specifies.
(e.g. Passing 0 or 1 argument to string=?
raises an error)
The short name is Sagittarius specific which provides all the bindings from the below libraries which are specified in the SRFI:
(srfi :160 base)
(srfi :160 u8)
(srfi :160 s8)
(srfi :160 u16)
(srfi :160 s16)
(srfi :160 u32)
(srfi :160 s32)
(srfi :160 u64)
(srfi :160 s64)
(srfi :160 f32)
(srfi :160 f64)
(srfi :160 c64)
(srfi :160 c128)
Each library can be imported like this:
(import (srfi :1))
So you don't have to type the long name.
All libraries have R7RS style library name as well. So SRFI-1 can be imported like this:
(import (srfi 1))