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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
|
;;; rnrs.scm --- The R6RS composite library
;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
;;
;; This library is free software; you can redistribute it and/or
;; modify it under the terms of the GNU Lesser General Public
;; License as published by the Free Software Foundation; either
;; version 3 of the License, or (at your option) any later version.
;;
;; This library is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; Lesser General Public License for more details.
;;
;; You should have received a copy of the GNU Lesser General Public
;; License along with this library; if not, write to the Free Software
;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
(library (rnrs (6))
(export ;; (rnrs arithmetic bitwise)
bitwise-not bitwise-and bitwise-ior bitwise-xor bitwise-if
bitwise-bit-count bitwise-length bitwise-first-bit-set
bitwise-bit-set? bitwise-copy-bit bitwise-bit-field
bitwise-copy-bit-field bitwise-arithmetic-shift
bitwise-arithmetic-shift-left bitwise-arithmetic-shift-right
bitwise-rotate-bit-field bitwise-reverse-bit-field
;; (rnrs arithmetic fixnums)
fixnum? fixnum-width least-fixnum greatest-fixnum fx=? fx>? fx<? fx>=?
fx<=? fxzero? fxpositive? fxnegative? fxodd? fxeven? fxmax fxmin fx+
fx* fx- fxdiv-and-mod fxdiv fxmod fxdiv0-and-mod0 fxdiv0 fxmod0
fx+/carry fx-/carry fx*/carry fxnot fxand fxior fxxor fxif fxbit-count
fxlength fxfirst-bit-set fxbit-set? fxcopy-bit fxbit-field
fxcopy-bit-field fxarithmetic-shift fxarithmetic-shift-left
fxarithmetic-shift-right fxrotate-bit-field fxreverse-bit-field
;; (rnrs arithmetic flonums)
flonum? real->flonum fl=? fl<? fl<=? fl>? fl>=? flinteger? flzero?
flpositive? flnegative? flodd? fleven? flfinite? flinfinite? flnan?
flmax flmin fl+ fl* fl- fl/ flabs fldiv-and-mod fldiv flmod
fldiv0-and-mod0 fldiv0 flmod0 flnumerator fldenominator flfloor
flceiling fltruncate flround flexp fllog flsin flcos fltan flacos
flasin flatan flsqrt flexpt &no-infinities
make-no-infinities-violation no-infinities-violation? &no-nans
make-no-nans-violation no-nans-violation? fixnum->flonum
;; (rnrs base)
boolean? symbol? char? vector? null? pair? number? string? procedure?
define define-syntax syntax-rules lambda let let* let-values
let*-values letrec letrec* begin quote lambda if set! cond case or
and not eqv? equal? eq? + - * / max min abs numerator denominator gcd
lcm floor ceiling truncate round rationalize real-part imag-part
make-rectangular angle div mod div-and-mod div0 mod0 div0-and-mod0
expt exact-integer-sqrt sqrt exp log sin cos tan asin acos atan
make-polar magnitude angle complex? real? rational? integer? exact?
inexact? real-valued? rational-valued? integer-valued? zero?
positive? negative? odd? even? nan? finite? infinite? exact inexact =
< > <= >= number->string string->number boolean=? cons car cdr caar
cadr cdar cddr caaar caadr cadar cdaar caddr cdadr cddar cdddr caaaar
caaadr caadar cadaar cdaaar cddaar cdadar cdaadr cadadr caaddr caddar
cadddr cdaddr cddadr cdddar cddddr list? list length append reverse
list-tail list-ref map for-each symbol->string string->symbol symbol=?
char->integer integer->char char=? char<? char>? char<=? char>=?
make-string string string-length string-ref string=? string<? string>?
string<=? string>=? substring string-append string->list list->string
string-for-each string-copy vector? make-vector vector vector-length
vector-ref vector-set! vector->list list->vector vector-fill!
vector-map vector-for-each error assertion-violation assert
call-with-current-continuation call/cc call-with-values dynamic-wind
values apply quasiquote unquote unquote-splicing let-syntax
letrec-syntax syntax-rules identifier-syntax
;; (rnrs bytevectors)
endianness native-endianness bytevector? make-bytevector
bytevector-length bytevector=? bytevector-fill! bytevector-copy!
bytevector-copy uniform-array->bytevector bytevector-u8-ref
bytevector-s8-ref bytevector-u8-set! bytevector-s8-set!
bytevector->u8-list u8-list->bytevector bytevector-uint-ref
bytevector-uint-set! bytevector-sint-ref bytevector-sint-set!
bytevector->sint-list bytevector->uint-list uint-list->bytevector
sint-list->bytevector bytevector-u16-ref bytevector-s16-ref
bytevector-u16-set! bytevector-s16-set! bytevector-u16-native-ref
bytevector-s16-native-ref bytevector-u16-native-set!
bytevector-s16-native-set! bytevector-u32-ref bytevector-s32-ref
bytevector-u32-set! bytevector-s32-set! bytevector-u32-native-ref
bytevector-s32-native-ref bytevector-u32-native-set!
bytevector-s32-native-set! bytevector-u64-ref bytevector-s64-ref
bytevector-u64-set! bytevector-s64-set! bytevector-u64-native-ref
bytevector-s64-native-ref bytevector-u64-native-set!
bytevector-s64-native-set! bytevector-ieee-single-ref
bytevector-ieee-single-set! bytevector-ieee-single-native-ref
bytevector-ieee-single-native-set! bytevector-ieee-double-ref
bytevector-ieee-double-set! bytevector-ieee-double-native-ref
bytevector-ieee-double-native-set! string->utf8 string->utf16
string->utf32 utf8->string utf16->string utf32->string
;; (rnrs conditions)
&condition condition simple-conditions condition? condition-predicate
condition-accessor define-condition-type &message
make-message-condition message-condition? condition-message &warning
make-warning warning? &serious make-serious-condition
serious-condition? &error make-error error? &violation make-violation
violation? &assertion make-assertion-violation assertion-violation?
&irritants make-irritants-condition irritants-condition?
condition-irritants &who make-who-condition who-condition?
condition-who &non-continuable make-non-continuable-violation
non-continuable-violation? &implementation-restriction
make-implementation-restriction-violation
implementation-restriction-violation? &lexical make-lexical-violation
lexical-violation? &syntax make-syntax-violation syntax-violation?
syntax-violation-form syntax-violation-subform &undefined
make-undefined-violation undefined-violation?
;; (rnrs control)
when unless do case-lambda
;; (rnrs enums)
make-enumeration enum-set-universe enum-set-indexer
enum-set-constructor enum-set->list enum-set-member? enum-set-subset?
enum-set=? enum-set-union enum-set-intersection enum-set-difference
enum-set-complement enum-set-projection define-enumeration
;; (rnrs exceptions)
guard with-exception-handler raise raise-continuable
;; (rnrs files)
file-exists? delete-file &i/o make-i/o-error i/o-error? &i/o-read
make-i/o-read-error i/o-read-error? &i/o-write make-i/o-write-error
i/o-write-error? &i/o-invalid-position
make-i/o-invalid-position-error i/o-invalid-position-error?
i/o-error-position &i/o-filename make-i/o-filename-error
i/o-filename-error? i/o-error-filename &i/o-file-protection
make-i/o-file-protection-error i/o-file-protection-error?
&i/o-file-is-read-only make-i/o-file-is-read-only-error
i/o-file-is-read-only-error? &i/o-file-already-exists
make-i/o-file-already-exists-error i/o-file-already-exists-error?
&i/o-file-does-not-exist make-i/o-file-does-not-exist-error
i/o-file-does-not-exist-error? &i/o-port make-i/o-port-error
i/o-port-error? i/o-error-port
;; (rnrs hashtables)
make-eq-hashtable make-eqv-hashtable make-hashtable hashtable?
hashtable-size hashtable-ref hashtable-set! hashtable-delete!
hashtable-contains? hashtable-update! hashtable-copy hashtable-clear!
hashtable-keys hashtable-entries hashtable-equivalence-function
hashtable-hash-function hashtable-mutable? equal-hash string-hash
string-ci-hash symbol-hash
;; (rnrs io ports)
&i/o-decoding i/o-decoding-error?
make-i/o-decoding-error
&i/o-encoding i/o-encoding-error-char i/o-encoding-error?
make-i/o-encoding-error
file-options buffer-mode buffer-mode?
eol-style native-eol-style error-handling-mode
make-transcoder transcoder-codec transcoder-eol-style
transcoder-error-handling-mode native-transcoder
latin-1-codec utf-8-codec utf-16-codec
string->bytevector bytevector->string
eof-object? port? input-port? output-port? eof-object port-eof?
port-transcoder
binary-port? textual-port? transcoded-port
port-position set-port-position!
port-has-port-position? port-has-set-port-position!?
close-port call-with-port
open-bytevector-input-port make-custom-binary-input-port get-u8
lookahead-u8 get-bytevector-n get-bytevector-n! get-bytevector-some
get-bytevector-all open-bytevector-output-port
make-custom-binary-output-port put-u8 put-bytevector
open-string-input-port open-string-output-port
call-with-bytevector-output-port
call-with-string-output-port
latin-1-codec utf-8-codec utf-16-codec
open-file-input-port open-file-output-port open-file-input/output-port
make-custom-textual-output-port
call-with-string-output-port
output-port-buffer-mode flush-output-port put-string
get-char get-datum get-line get-string-all get-string-n get-string-n!
lookahead-char
put-char put-datum put-string
standard-input-port standard-output-port standard-error-port
;; (rnrs io simple)
call-with-input-file call-with-output-file current-input-port
current-output-port current-error-port with-input-from-file
with-output-to-file open-input-file open-output-file close-input-port
close-output-port read-char peek-char read write-char newline display
write
;; (rnrs lists)
find for-all exists filter partition fold-left fold-right remp remove
remv remq memp member memv memq assp assoc assv assq cons*
;; (rnrs programs)
command-line exit
;; (rnrs records inspection)
record? record-rtd record-type-name record-type-parent
record-type-uid record-type-generative? record-type-sealed?
record-type-opaque? record-type-field-names record-field-mutable?
;; (rnrs records procedural)
make-record-type-descriptor record-type-descriptor?
make-record-constructor-descriptor record-constructor record-predicate
record-accessor record-mutator
;; (rnrs records syntactic)
define-record-type record-type-descriptor
record-constructor-descriptor
;; (rnrs sorting)
list-sort vector-sort vector-sort!
;; (rnrs syntax-case)
make-variable-transformer syntax
;; Until the deprecated support for a unified modules and
;; bindings namespace is removed, we need to manually resolve
;; a conflict between two bindings: that of the (rnrs
;; syntax-case) module, and the imported `syntax-case'
;; binding. We do so here and below by renaming the macro
;; import.
(rename (syntax-case-hack syntax-case))
identifier? bound-identifier=? free-identifier=?
syntax->datum datum->syntax generate-temporaries with-syntax
quasisyntax unsyntax unsyntax-splicing syntax-violation
;; (rnrs unicode)
char-upcase char-downcase char-titlecase char-foldcase
char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
char-alphabetic? char-numeric? char-whitespace? char-upper-case?
char-lower-case? char-title-case? char-general-category
string-upcase string-downcase string-titlecase string-foldcase
string-ci=? string-ci<? string-ci>? string-ci<=? string-ci>=?
string-normalize-nfd string-normalize-nfkd string-normalize-nfc
string-normalize-nfkc)
(import (rnrs arithmetic bitwise (6))
(rnrs arithmetic fixnums (6))
(rnrs arithmetic flonums (6))
(rnrs base (6))
(rnrs bytevectors (6))
(rnrs conditions (6))
(rnrs control (6))
(rnrs enums (6))
(rnrs exceptions (6))
(rnrs files (6))
(rnrs hashtables (6))
(rnrs io ports (6))
(rnrs io simple (6))
(rnrs lists (6))
(rnrs programs (6))
(rnrs records inspection (6))
(rnrs records procedural (6))
(rnrs records syntactic (6))
(rnrs sorting (6))
;; See note above on exporting syntax-case.
(rename (rnrs syntax-case (6))
(syntax-case syntax-case-hack))
(rnrs unicode (6))))
|