2010-04-09 00:23:28 -04:00
|
|
|
|
;;; rnrs.scm --- The R6RS composite library
|
|
|
|
|
|
|
2011-01-21 08:27:08 +01:00
|
|
|
|
;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
|
2010-04-09 00:23:28 -04:00
|
|
|
|
;;
|
|
|
|
|
|
;; 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
|
Add exports for missing functions from `(rnrs base)'.
* module/rnrs.scm (boolean=?): New export.
Fix typo in export of`integer-valued?'.
* module/rnrs/base.scm: Add exports for `exact' and `inexact'.
(boolean=?, symbol=?, infinite?, finite?, exact-integer-sqrt,
integer-valued?, rational-valued?, real-valued?): New functions.
* test-suite/tests/r6rs-base.test (boolean=?, symbol=?, infinite?,
finite?, exact-integer-sqrt, integer-valued?, rational-valued?,
real-valued?): New test prefixes and tests.
2010-11-17 00:59:45 -05:00
|
|
|
|
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
|
2010-04-09 00:23:28 -04:00
|
|
|
|
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?
|
Add exports for missing functions from `(rnrs base)'.
* module/rnrs.scm (boolean=?): New export.
Fix typo in export of`integer-valued?'.
* module/rnrs/base.scm: Add exports for `exact' and `inexact'.
(boolean=?, symbol=?, infinite?, finite?, exact-integer-sqrt,
integer-valued?, rational-valued?, real-valued?): New functions.
* test-suite/tests/r6rs-base.test (boolean=?, symbol=?, infinite?,
finite?, exact-integer-sqrt, integer-valued?, rational-valued?,
real-valued?): New test prefixes and tests.
2010-11-17 00:59:45 -05:00
|
|
|
|
inexact? real-valued? rational-valued? integer-valued? zero?
|
2010-04-09 00:23:28 -04:00
|
|
|
|
positive? negative? odd? even? nan? finite? infinite? exact inexact =
|
Add exports for missing functions from `(rnrs base)'.
* module/rnrs.scm (boolean=?): New export.
Fix typo in export of`integer-valued?'.
* module/rnrs/base.scm: Add exports for `exact' and `inexact'.
(boolean=?, symbol=?, infinite?, finite?, exact-integer-sqrt,
integer-valued?, rational-valued?, real-valued?): New functions.
* test-suite/tests/r6rs-base.test (boolean=?, symbol=?, infinite?,
finite?, exact-integer-sqrt, integer-valued?, rational-valued?,
real-valued?): New test prefixes and tests.
2010-11-17 00:59:45 -05:00
|
|
|
|
< > <= >= 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
|
2010-04-09 00:23:28 -04:00
|
|
|
|
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
|
|
|
|
|
|
|
2010-06-01 13:26:11 +02:00
|
|
|
|
;; (rnrs bytevectors)
|
2010-04-09 00:23:28 -04:00
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
2016-06-21 11:07:34 +02:00
|
|
|
|
&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?
|
Work towards a more complete implementation of `(rnrs io ports)'
* module/rnrs/io/ports.scm: (file-options, buffer-mode, eol-style)
(error-handling-mode, make-transcoder, native-transcoder)
(latin-1-codec, utf-8-codec, utf-16-codec)
(call-with-bytevector-output-port, open-file-input-port)
(open-file-output-port, make-custom-textual-output-port)
(flush-output-port, put-char, put-datum, put-string, get-char)
(get-datum, get-line, get-string-all, lookahead-char)
(standard-input-port, standard-output-port, standard-error-port):
Define all of these.
(call-with-port): Don't use `dynamic-wind', as it is against its
specification in R6RS 8.2.6.
* module/rnrs.scm: Export procedures added.
* module/rnrs/io/simple.scm (call-with-input-file)
(call-with-output-file): Define these in terms of R6RS procedures to
get correct exception behavior.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2010-11-21 23:17:53 +01:00
|
|
|
|
eol-style native-eol-style error-handling-mode
|
2011-03-13 23:14:10 +01:00
|
|
|
|
make-transcoder transcoder-codec transcoder-eol-style
|
|
|
|
|
|
transcoder-error-handling-mode native-transcoder
|
Work towards a more complete implementation of `(rnrs io ports)'
* module/rnrs/io/ports.scm: (file-options, buffer-mode, eol-style)
(error-handling-mode, make-transcoder, native-transcoder)
(latin-1-codec, utf-8-codec, utf-16-codec)
(call-with-bytevector-output-port, open-file-input-port)
(open-file-output-port, make-custom-textual-output-port)
(flush-output-port, put-char, put-datum, put-string, get-char)
(get-datum, get-line, get-string-all, lookahead-char)
(standard-input-port, standard-output-port, standard-error-port):
Define all of these.
(call-with-port): Don't use `dynamic-wind', as it is against its
specification in R6RS 8.2.6.
* module/rnrs.scm: Export procedures added.
* module/rnrs/io/simple.scm (call-with-input-file)
(call-with-output-file): Define these in terms of R6RS procedures to
get correct exception behavior.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2010-11-21 23:17:53 +01:00
|
|
|
|
latin-1-codec utf-8-codec utf-16-codec
|
2016-06-21 11:27:21 +02:00
|
|
|
|
string->bytevector bytevector->string
|
Work towards a more complete implementation of `(rnrs io ports)'
* module/rnrs/io/ports.scm: (file-options, buffer-mode, eol-style)
(error-handling-mode, make-transcoder, native-transcoder)
(latin-1-codec, utf-8-codec, utf-16-codec)
(call-with-bytevector-output-port, open-file-input-port)
(open-file-output-port, make-custom-textual-output-port)
(flush-output-port, put-char, put-datum, put-string, get-char)
(get-datum, get-line, get-string-all, lookahead-char)
(standard-input-port, standard-output-port, standard-error-port):
Define all of these.
(call-with-port): Don't use `dynamic-wind', as it is against its
specification in R6RS 8.2.6.
* module/rnrs.scm: Export procedures added.
* module/rnrs/io/simple.scm (call-with-input-file)
(call-with-output-file): Define these in terms of R6RS procedures to
get correct exception behavior.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2010-11-21 23:17:53 +01:00
|
|
|
|
|
2011-01-21 08:27:08 +01:00
|
|
|
|
eof-object? port? input-port? output-port? eof-object port-eof?
|
|
|
|
|
|
port-transcoder
|
2011-03-13 23:14:10 +01:00
|
|
|
|
binary-port? textual-port? transcoded-port
|
|
|
|
|
|
port-position set-port-position!
|
Work towards a more complete implementation of `(rnrs io ports)'
* module/rnrs/io/ports.scm: (file-options, buffer-mode, eol-style)
(error-handling-mode, make-transcoder, native-transcoder)
(latin-1-codec, utf-8-codec, utf-16-codec)
(call-with-bytevector-output-port, open-file-input-port)
(open-file-output-port, make-custom-textual-output-port)
(flush-output-port, put-char, put-datum, put-string, get-char)
(get-datum, get-line, get-string-all, lookahead-char)
(standard-input-port, standard-output-port, standard-error-port):
Define all of these.
(call-with-port): Don't use `dynamic-wind', as it is against its
specification in R6RS 8.2.6.
* module/rnrs.scm: Export procedures added.
* module/rnrs/io/simple.scm (call-with-input-file)
(call-with-output-file): Define these in terms of R6RS procedures to
get correct exception behavior.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2010-11-21 23:17:53 +01:00
|
|
|
|
port-has-port-position? port-has-set-port-position!?
|
|
|
|
|
|
close-port call-with-port
|
2010-04-09 00:23:28 -04:00
|
|
|
|
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
|
2010-06-18 19:27:52 +02:00
|
|
|
|
open-string-input-port open-string-output-port
|
Work towards a more complete implementation of `(rnrs io ports)'
* module/rnrs/io/ports.scm: (file-options, buffer-mode, eol-style)
(error-handling-mode, make-transcoder, native-transcoder)
(latin-1-codec, utf-8-codec, utf-16-codec)
(call-with-bytevector-output-port, open-file-input-port)
(open-file-output-port, make-custom-textual-output-port)
(flush-output-port, put-char, put-datum, put-string, get-char)
(get-datum, get-line, get-string-all, lookahead-char)
(standard-input-port, standard-output-port, standard-error-port):
Define all of these.
(call-with-port): Don't use `dynamic-wind', as it is against its
specification in R6RS 8.2.6.
* module/rnrs.scm: Export procedures added.
* module/rnrs/io/simple.scm (call-with-input-file)
(call-with-output-file): Define these in terms of R6RS procedures to
get correct exception behavior.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2010-11-21 23:17:53 +01:00
|
|
|
|
call-with-bytevector-output-port
|
|
|
|
|
|
call-with-string-output-port
|
|
|
|
|
|
latin-1-codec utf-8-codec utf-16-codec
|
2012-11-12 20:47:57 +01:00
|
|
|
|
open-file-input-port open-file-output-port open-file-input/output-port
|
Work towards a more complete implementation of `(rnrs io ports)'
* module/rnrs/io/ports.scm: (file-options, buffer-mode, eol-style)
(error-handling-mode, make-transcoder, native-transcoder)
(latin-1-codec, utf-8-codec, utf-16-codec)
(call-with-bytevector-output-port, open-file-input-port)
(open-file-output-port, make-custom-textual-output-port)
(flush-output-port, put-char, put-datum, put-string, get-char)
(get-datum, get-line, get-string-all, lookahead-char)
(standard-input-port, standard-output-port, standard-error-port):
Define all of these.
(call-with-port): Don't use `dynamic-wind', as it is against its
specification in R6RS 8.2.6.
* module/rnrs.scm: Export procedures added.
* module/rnrs/io/simple.scm (call-with-input-file)
(call-with-output-file): Define these in terms of R6RS procedures to
get correct exception behavior.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2010-11-21 23:17:53 +01:00
|
|
|
|
make-custom-textual-output-port
|
|
|
|
|
|
call-with-string-output-port
|
2016-06-21 11:06:25 +02:00
|
|
|
|
output-port-buffer-mode flush-output-port put-string
|
2011-03-13 22:39:14 +01:00
|
|
|
|
get-char get-datum get-line get-string-all get-string-n get-string-n!
|
|
|
|
|
|
lookahead-char
|
Work towards a more complete implementation of `(rnrs io ports)'
* module/rnrs/io/ports.scm: (file-options, buffer-mode, eol-style)
(error-handling-mode, make-transcoder, native-transcoder)
(latin-1-codec, utf-8-codec, utf-16-codec)
(call-with-bytevector-output-port, open-file-input-port)
(open-file-output-port, make-custom-textual-output-port)
(flush-output-port, put-char, put-datum, put-string, get-char)
(get-datum, get-line, get-string-all, lookahead-char)
(standard-input-port, standard-output-port, standard-error-port):
Define all of these.
(call-with-port): Don't use `dynamic-wind', as it is against its
specification in R6RS 8.2.6.
* module/rnrs.scm: Export procedures added.
* module/rnrs/io/simple.scm (call-with-input-file)
(call-with-output-file): Define these in terms of R6RS procedures to
get correct exception behavior.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2010-11-21 23:17:53 +01:00
|
|
|
|
put-char put-datum put-string
|
|
|
|
|
|
standard-input-port standard-output-port standard-error-port
|
|
|
|
|
|
|
2010-04-09 00:23:28 -04:00
|
|
|
|
;; (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)
|
|
|
|
|
|
|
2010-09-02 21:29:26 -07:00
|
|
|
|
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
|
2010-06-19 14:51:04 +02:00
|
|
|
|
|
|
|
|
|
|
;; (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)
|
2010-04-09 00:23:28 -04:00
|
|
|
|
|
|
|
|
|
|
(import (rnrs arithmetic bitwise (6))
|
|
|
|
|
|
(rnrs arithmetic fixnums (6))
|
|
|
|
|
|
(rnrs arithmetic flonums (6))
|
|
|
|
|
|
(rnrs base (6))
|
|
|
|
|
|
|
2010-06-01 22:00:28 +02:00
|
|
|
|
(rnrs bytevectors (6))
|
|
|
|
|
|
|
2010-04-09 00:23:28 -04:00
|
|
|
|
(rnrs conditions (6))
|
|
|
|
|
|
(rnrs control (6))
|
|
|
|
|
|
(rnrs enums (6))
|
|
|
|
|
|
(rnrs exceptions (6))
|
2010-06-21 00:07:46 +02:00
|
|
|
|
|
2010-11-21 23:17:52 +01:00
|
|
|
|
(rnrs files (6))
|
2010-06-21 00:07:46 +02:00
|
|
|
|
|
2010-04-09 00:23:28 -04:00
|
|
|
|
(rnrs hashtables (6))
|
|
|
|
|
|
|
2010-06-01 22:00:28 +02:00
|
|
|
|
(rnrs io ports (6))
|
2010-04-09 00:23:28 -04:00
|
|
|
|
|
|
|
|
|
|
(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))
|
2010-09-02 21:29:26 -07:00
|
|
|
|
;; See note above on exporting syntax-case.
|
|
|
|
|
|
(rename (rnrs syntax-case (6))
|
|
|
|
|
|
(syntax-case syntax-case-hack))
|
2010-06-19 14:51:04 +02:00
|
|
|
|
(rnrs unicode (6))))
|