1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
PLT Scheme support for _SRFIs_ (`surfies')
==========================================
This is an implementation of (some) SRFIs to the PLT Scheme
system. It is intended for PLT Scheme v200+.
If you need more information on SRFI, please visit:
http://srfi.schemers.org/
Loading
-------
To load a SRFI with name conflicts (currently SRFIs 1, 19, 43,
45, 48 and 69) in a module, please see the note below.
To load a SRFI, use the following form:
(require (lib "N.ss" "srfi"))
if you know the number of the SRFI you want to load. This is the
preferred method, or this one:
(require (lib "NAME.ss" "srfi" "N"))
if you know the `informative name' of the SRFI.
N, is a number corresponding to the sub-collection that holds a
particular SRFI, and NAME is a more descriptive name we assigned
to the main file in which the SRFI is defined. For instance, to
load SRFI-34 you have to do either one of:
(require (lib "34.ss" "srfi"))
or,
(require (lib "exception.ss" "srfi" "34"))
NOTE on SRFIs with name conflicts
---------------------------------
Certain SRFIs (currently SRFIs 1, 13, 19, 43, 45, 48 and 69)
provide names which conflict with names provided by the
'mzscheme' language. Attempting to require one of these SRFIs in
a module written in the 'mzscheme' language will result in an
error.
To address this problem, the PLT implementations of these SRFIs
provide a different module which renames the problematic exports
to avoid these conflicts. For SRFI 1, this library is called
list.ss, and should be required like this:
(require (lib "list.ss" "srfi" "1"))
which supplies the colliding names with a prefix of 's:'
(e.g. "s:map", "s:reverse!") and is therefore suitable for
requires in a module.
For SRFI 19, this library is called time.ss, and should be
required like this:
(require (lib "time.ss" "srfi" "19"))
which supplies the colliding names with a prefix of 'srfi:'
(e.g. "srfi:date?", "srfi:date-second") and is therefore suitable
for requires in a module.
Supported SRFIs
---------------
Here is a table that has an SRFI, file name, and the
sub-collection number of the already ported SRFIs:
SRFI File name Sub-collection
======== =========== ================
SRFI-1 list.ss 1
SRFI-2 and-let.ss 2
SRFI-4(*1) 4.ss
SRFI-5 let.ss 5
SRFI-6(+) 6.ss
SRFI-7 program.ss 7
SRFI-8 receive.ss 8
SRFI-9 record.ss 9
SRFI-11(+) 11.ss
SRFI-13 string.ss 13
SRFI-14 char-set.ss 14
SRFI-16(+) 16.ss
SRFI-17 set.ss 17
SRFI-18(++) 18.ss
SRFI-19(*2) time.ss 19
SRFI-23(+) 23.ss
SRFI-25 array.ss 25
SRFI-26 cut.ss 26
SRFI-27 random-bits.ss 27
SRFI-28(+) 28.ss
SRFI-29 localization.ss 29
SRFI-30(+) 30.ss
SRFI-31 rec.ss 31
SRFI-34 exception.ss 34
SRFI-38(+) 38.ss
SRFI-39(+) 39.ss
SRFI-40 stream.ss 40
SRFI-42 comprehensions.ss 42
SRFI-43 vector-lib.ss 43
SRFI-45(*3) lazy.ss 45
SRFI-48 format.ss 48
SRFI-57 records.ss 57
SRFI-59 vicinity.ss 59
SRFI-60 60.ss 60
SRFI-66 66.ss 66
SRFI-67 compare.ss 67
SRFI-69 hash.ss 69
SRFI-74 74.ss 74
Notes:
,--------------------
| + Supported by the core of PLT Scheme
`--------------------
,--------------------
| ++ Partially supported by the core of PLT Scheme
`--------------------
,--------------------
| *1 The functionality is all part of mzscheme available via (lib
| "foreign.ss"), the only missing part is the i/o syntax.
`--------------------
,--------------------
| *2 The time module does not export its time structure (you have
| to use the time-* procedures.) It renames all the date-*
| accessors to tm:date-* so that you won't get errors when
| including this code in other modules. Care most be taken NOT
| to confuse the internal date structure with the PLT Scheme one,
| they are not the same, and all procedures from this library
| expect the former.
`--------------------
,--------------------
| *3 This port also provides |promise?| / |srfi-45-promise?|.
`--------------------
That's it for now. If you have ported other SRFIs, and want them
added to this library, please let us know:
+ the main PLT Scheme discussion list:
PLT Scheme <plt-scheme@fast.cs.utah.edu>
+ the Schematics-people @ sourceforge.net. We are NOT members
of the PLT group, the Schematics project is devoted to create
code for PLT Scheme ONLY, though. This SRFI port effort will
try to be developed, tested, and debugged @ sourceforge, and
periodically inserted to PLT Scheme. Please, do join us!:
http://schematics.sourceforge.net
(we don't have separate mailing lists @ sourceforge. We have a
couple of forums there, though. Of course, you can send us mail
directly, or... well, we read the PLT Scheme mailing list.)
|