#
References

[1] | Henk P. Barendregt. Introduction to the lambda calculus. Nieuw Archief voor Wisenkunde, 4(2):337–372, 1984.
[2] | Alan Bawden. Quasiquotation in Lisp. In Olivier Danvy, editor, Proc. ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation PEPM ’99, pages 4–12, San Antonio, Texas, USA, January 1999. BRICS Notes Series NS-99-1.
[3] | William Clinger and Jonathan Rees. Macros that work. In Proc. 1991 ACM SIGPLAN Symposium on Principles of Programming Languages, pages 155–162, Orlando, Florida, January 1991. ACM Press.
[4] | Danny Cohen. On holy wars and a plea for peace. http://www.ietf.org/rfc/ien/ien137.txt, April 1980. Internet Engineering Note 137.
[5] | Mark Davis. Unicode Standard Annex #29: Text boundaries. http://www.unicode.org/reports/tr29/, 2006.
[6] | R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic abstraction in Scheme. Lisp and Symbolic Computation, 1(1):53–75, 1988.
[7] | IEEE standard 754-1985. IEEE standard for binary floating-point arithmetic, 1985. Reprinted in SIGPLAN Notices, 22(2):9-25, 1987.
[8] | Richard Kelsey, William Clinger, and Jonathan Rees. Revised5 report on the algorithmic language Scheme. Higher-Order and Symbolic Computation, 11(1):7–105, 1998.
[9] | Eugene E. Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. Hygienic macro expansion. In Proceedings of the 1986 ACM Conference on Lisp and Functional Programming, pages 151–161, 1986.
[10] | P. Leach, M. Mealling, and R. Salz. A Universally Unique IDentifier (UUID) URN namespace. http://www.ietf.org/rfc/rfc4122.txt, July 2005. RFC 4122.
[11] | Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton van Straaten, Richard Kelsey, William Clinger, and Jonathan Rees. Revised6 report on the algorithmic language Scheme. http://www.r6rs.org/, 2007.
[12] | The Unicode Consortium. The Unicode standard, version 5.0.0. defined by: The Unicode Standard, Version 5.0 (Boston, MA, Addison-Wesley, 2007. ISBN 0-321-48091-0), 2007.
[13] | Oscar Waddell. Extending the Scope of Syntactic Abstraction. PhD thesis, Indiana University, August 1999. http://www.cs.indiana.edu/~owaddell/papers/thesis.ps.gz.

#
Index

Alphabetic index of definitions of concepts, keywords, and procedures

`...` 13, 13ii `=>` 8 `_` 13iii

accessor 7 antimark 13iv `&assertion` 8ii `assertion-violation?` 8iii `assoc` 4 `assp` 4ii `assq` 4iii `assv` 4iv

base record type 7ii big-endian 3 binary port 9, 9ii `binary-port?` 9iii bit fields 12 `bitwise-and` 12ii `bitwise-arithmetic-shift` 12iii `bitwise-arithmetic-shift-left` 12iv `bitwise-arithmetic-shift-right` 12v `bitwise-bit-count` 12vi `bitwise-bit-field` 12vii `bitwise-bit-set?` 12viii `bitwise-copy-bit` 12ix `bitwise-copy-bit-field` 12x `bitwise-first-bit-set` 12xi `bitwise-if` 12xii `bitwise-ior` 12xiii `bitwise-length` 12xiv `bitwise-not` 12xv `bitwise-reverse-bit-field` 12xvi `bitwise-rotate-bit-field` 12xvii `bitwise-xor` 12xviii `bound-identifier=?` 13v `buffer-mode` 9iv `buffer-mode?` 9v byte 3ii bytevector 3iii `bytevector->sint-list` 3iv `bytevector->string` 9vi `bytevector->u8-list` 3v `bytevector->uint-list` 3vi `bytevector-copy` 3vii `bytevector-copy!` 3viii `bytevector-fill!` 3ix `bytevector-ieee-double-native-ref` 3x `bytevector-ieee-double-native-set!` 3xi `bytevector-ieee-double-ref` 3xii `bytevector-ieee-single-native-ref` 3xiii `bytevector-ieee-single-native-set!` 3xiv `bytevector-ieee-single-ref` 3xv `bytevector-length` 3xvi `bytevector-s16-native-ref` 3xvii `bytevector-s16-native-set!` 3xviii `bytevector-s16-ref` 3xix `bytevector-s16-set!` 3xx `bytevector-s32-native-ref` 3xxi `bytevector-s32-native-set!` 3xxii `bytevector-s32-ref` 3xxiii `bytevector-s32-set!` 3xxiv `bytevector-s64-native-ref` 3xxv `bytevector-s64-native-set!` 3xxvi `bytevector-s64-ref` 3xxvii `bytevector-s64-set!` 3xxviii `bytevector-s8-ref` 3xxix `bytevector-s8-set!` 3xxx `bytevector-sint-ref` 3xxxi `bytevector-sint-set!` 3xxxii `bytevector-u16-native-ref` 3xxxiii `bytevector-u16-native-set!` 3xxxiv `bytevector-u16-ref` 3xxxv `bytevector-u16-set!` 3xxxvi `bytevector-u32-native-ref` 3xxxvii `bytevector-u32-native-set!` 3xxxviii `bytevector-u32-ref` 3xxxix `bytevector-u32-set!` 3xl `bytevector-u64-native-ref` 3xli `bytevector-u64-native-set!` 3xlii `bytevector-u64-ref` 3xliii `bytevector-u64-set!` 3xliv `bytevector-u8-ref` 3xlv `bytevector-u8-set!` 3xlvi `bytevector-uint-ref` 3xlvii `bytevector-uint-set!` 3xlviii `bytevector=?` 3xlix `bytevector?` 3l

call by need 20 `call-with-bytevector-output-port` 9vii `call-with-input-file` 9viii `call-with-output-file` 9ix `call-with-port` 9x `call-with-string-output-port` 9xi `case-lambda` 6 `char-alphabetic?` 2 `char-ci<=?` 2ii `char-ci<?` 2iii `char-ci=?` 2iv `char-ci>=?` 2v `char-ci>?` 2vi `char-downcase` 2vii `char-foldcase` 2viii `char-general-category` 2ix `char-lower-case?` 2x `char-numeric?` 2xi `char-title-case?` 2xii `char-titlecase` 2xiii `char-upcase` 2xiv `char-upper-case?` 2xv `char-whitespace?` 2xvi `close-input-port` 9xii `close-output-port` 9xiii `close-port` 9xiv codec 9xv `command-line` 11 compound condition 8iv condition 8v `&condition` 8vi `condition` 8vii `condition-accessor` 8viii `condition-irritants` 8ix `condition-message` 8x `condition-predicate` 8xi `condition-who` 8xii `condition?` 8xiii `cons*` 4v, 4vi constructor descriptor 7iii continuable exception 8xiv current exception handler 8xv `current-error-port` 9xvi, 9xvii, 9xviii `current-input-port` 9xix, 9xx, 9xxi `current-output-port` 9xxii, 9xxiii, 9xxiv

`datum->syntax` 13vi `define-condition-type` 8xvi `define-enumeration` 15 `define-record-type` 7iv `delay` 20ii `delete-file` 10 `display` 9xxv, 9xxvi `do` 6ii

`else` 8xvii end-of-file object 9xxvii end-of-line style 9xxviii endianness 3li `endianness` 3lii `enum-set->list` 15ii `enum-set-complement` 15iii `enum-set-constructor` 15iv `enum-set-difference` 15v `enum-set-indexer` 15vi `enum-set-intersection` 15vii `enum-set-member?` 15viii `enum-set-projection` 15ix `enum-set-subset?` 15x `enum-set-union` 15xi `enum-set-universe` 15xii `enum-set=?` 15xiii enumeration 15xiv enumeration sets 15xv enumeration type 15xvi environment 17 `environment` 17ii `eof-object` 9xxix, 9xxx, 9xxxi `eof-object?` 9xxxii, 9xxxiii, 9xxxiv `eol-style` 9xxxv `equal-hash` 14 equivalence function 14ii `&error` 8xviii `error-handling-mode` 9xxxvi `error?` 8xix `eval` 17iii `exact->inexact` 20iii exceptional situation 8xx exceptions 8xxi `exists` 4vii `exit` 11ii, 11iii

field 7v `fields` 7vi file options 9xxxvii `file-exists?` 10ii `file-options` 9xxxviii `filter` 4viii `find` 4ix `fixnum->flonum` 12xix `fixnum-width` 12xx `fixnum?` 12xxi `fl*` 12xxii `fl+` 12xxiii `fl-` 12xxiv, 12xxv `fl/` 12xxvi, 12xxvii `fl<=?` 12xxviii `fl<?` 12xxix `fl=?` 12xxx `fl>=?` 12xxxi `fl>?` 12xxxii `flabs` 12xxxiii `flacos` 12xxxiv `flasin` 12xxxv `flatan` 12xxxvi, 12xxxvii `flceiling` 12xxxviii `flcos` 12xxxix `fldenominator` 12xl `fldiv` 12xli `fldiv-and-mod` 12xlii `fldiv0` 12xliii `fldiv0-and-mod0` 12xliv `fleven?` 12xlv `flexp` 12xlvi `flexpt` 12xlvii `flfinite?` 12xlviii `flfloor` 12xlix `flinfinite?` 12l `flinteger?` 12li `fllog` 12lii, 12liii `flmax` 12liv `flmin` 12lv `flmod` 12lvi `flmod0` 12lvii `flnan?` 12lviii `flnegative?` 12lix `flnumerator` 12lx `flodd?` 12lxi `flonum?` 12lxii `flpositive?` 12lxiii `flround` 12lxiv `flsin` 12lxv `flsqrt` 12lxvi `fltan` 12lxvii `fltruncate` 12lxviii `flush-output-port` 9xxxix `flzero?` 12lxix `fold-left` 4x `fold-right` 4xi `for-all` 4xii `force` 20iv `free-identifier=?` 13vii `fx*` 12lxx `fx*/carry` 12lxxi `fx+` 12lxxii `fx+/carry` 12lxxiii `fx-` 12lxxiv, 12lxxv `fx-/carry` 12lxxvi `fx<=?` 12lxxvii `fx<?` 12lxxviii `fx=?` 12lxxix `fx>=?` 12lxxx `fx>?` 12lxxxi `fxand` 12lxxxii `fxarithmetic-shift` 12lxxxiii `fxarithmetic-shift-left` 12lxxxiv `fxarithmetic-shift-right` 12lxxxv `fxbit-count` 12lxxxvi `fxbit-field` 12lxxxvii `fxbit-set?` 12lxxxviii `fxcopy-bit` 12lxxxix `fxcopy-bit-field` 12xc `fxdiv` 12xci `fxdiv-and-mod` 12xcii `fxdiv0` 12xciii `fxdiv0-and-mod0` 12xciv `fxeven?` 12xcv `fxfirst-bit-set` 12xcvi `fxif` 12xcvii `fxior` 12xcviii `fxlength` 12xcix `fxmax` 12c `fxmin` 12ci `fxmod` 12cii `fxmod0` 12ciii `fxnegative?` 12civ `fxnot` 12cv `fxodd?` 12cvi `fxpositive?` 12cvii `fxreverse-bit-field` 12cviii `fxrotate-bit-field` 12cix `fxxor` 12cx `fxzero?` 12cxi

`generate-temporaries` 13viii `get-bytevector-all` 9xl `get-bytevector-n` 9xli `get-bytevector-n!` 9xlii `get-bytevector-some` 9xliii `get-char` 9xliv `get-datum` 9xlv `get-line` 9xlvi `get-string-all` 9xlvii `get-string-n` 9xlviii `get-string-n!` 9xlix `get-u8` 9l `greatest-fixnum` 12cxii `guard` 8xxii

hash function 14iii hashtable 14iv, 14v `hashtable-clear!` 14vi, 14vii `hashtable-contains?` 14viii `hashtable-copy` 14ix, 14x `hashtable-delete!` 14xi `hashtable-entries` 14xii `hashtable-equivalence-function` 14xiii `hashtable-hash-function` 14xiv `hashtable-keys` 14xv `hashtable-mutable?` 14xvi `hashtable-ref` 14xvii `hashtable-set!` 14xviii `hashtable-size` 14xix `hashtable-update!` 14xx `hashtable?` 14xxi

`&i/o` 9li `&i/o-decoding` 9lii `i/o-decoding-error?` 9liii `&i/o-encoding` 9liv `i/o-encoding-error-char` 9lv `i/o-encoding-error?` 9lvi `i/o-error-filename` 9lvii `i/o-error-port` 9lviii `i/o-error-position` 9lix `i/o-error?` 9lx `&i/o-file-already-exists` 9lxi `i/o-file-already-exists-error?` 9lxii `&i/o-file-does-not-exist` 9lxiii `i/o-file-does-not-exist-error?` 9lxiv `&i/o-file-is-read-only` 9lxv `i/o-file-is-read-only-error?` 9lxvi `&i/o-file-protection` 9lxvii `i/o-file-protection-error?` 9lxviii `&i/o-filename` 9lxix `i/o-filename-error?` 9lxx `&i/o-invalid-position` 9lxxi `i/o-invalid-position-error?` 9lxxii `&i/o-port` 9lxxiii `i/o-port-error?` 9lxxiv `&i/o-read` 9lxxv `i/o-read-error?` 9lxxvi `&i/o-write` 9lxxvii `i/o-write-error?` 9lxxviii identifier macro 13ix `identifier?` 13x `immutable` 7vii immutable record type 7viii `&implementation-restriction` 8xxiii `implementation-restriction-violation?` 8xxiv implicit identifier 13xi `inexact->exact` 20v input port 9lxxix `input-port?` 9lxxx, 9lxxxi `&irritants` 8xxv `irritants-condition?` 8xxvi

`latin-1-codec` 9lxxxii lazy evaluation 20vi `least-fixnum` 12cxiii `&lexical` 8xxvii `lexical-violation?` 8xxviii `list-sort` 5 little-endian 3liii `lookahead-char` 9lxxxiii `lookahead-u8` 9lxxxiv

macro transformer 13xii `make-assertion-violation` 8xxix `make-bytevector` 3liv, 3lv `make-custom-binary-input-port` 9lxxxv `make-custom-binary-input/output-port` 9lxxxvi `make-custom-binary-output-port` 9lxxxvii `make-custom-textual-input-port` 9lxxxviii `make-custom-textual-input/output-port` 9lxxxix `make-custom-textual-output-port` 9xc `make-enumeration` 15xvii `make-eq-hashtable` 14xxii, 14xxiii `make-eqv-hashtable` 14xxiv, 14xxv `make-error` 8xxx `make-hashtable` 14xxvi, 14xxvii `make-i/o-decoding-error` 9xci `make-i/o-encoding-error` 9xcii `make-i/o-error` 9xciii `make-i/o-file-already-exists-error` 9xciv `make-i/o-file-does-not-exist-error` 9xcv `make-i/o-file-is-read-only-error` 9xcvi `make-i/o-file-protection-error` 9xcvii `make-i/o-filename-error` 9xcviii `make-i/o-invalid-position-error` 9xcix `make-i/o-port-error` 9c `make-i/o-read-error` 9ci `make-i/o-write-error` 9cii `make-implementation-restriction-violation` 8xxxi `make-irritants-condition` 8xxxii `make-lexical-violation` 8xxxiii `make-message-condition` 8xxxiv `make-no-infinities-violation` 12cxiv `make-no-nans-violation` 12cxv `make-non-continuable-violation` 8xxxv `make-record-constructor-descriptor` 7ix `make-record-type-descriptor` 7x `make-serious-condition` 8xxxvi `make-syntax-violation` 8xxxvii `make-transcoder` 9ciii, 9civ, 9cv `make-undefined-violation` 8xxxviii `make-variable-transformer` 13xiii `make-violation` 8xxxix `make-warning` 8xl `make-who-condition` 8xli mark 13xiv `member` 4xiii `memp` 4xiv `memq` 4xv `memv` 4xvi `&message` 8xlii `message-condition?` 8xliii `modulo` 20vii `mutable` 7xi mutable record type 7xii mutator 7xiii

`native-endianness` 3lvi `native-eol-style` 9cvi `native-transcoder` 9cvii `newline` 9cviii, 9cix `&no-infinities` 12cxvi `no-infinities-violation?` 12cxvii `&no-nans` 12cxviii `no-nans-violation?` 12cxix `&non-continuable` 8xliv `non-continuable-violation?` 8xlv nongenerative 7xiv `nongenerative` 7xv `null-environment` 20viii number 12cxx

octet 3lvii `opaque` 7xvi `open-bytevector-input-port` 9cx `open-bytevector-output-port` 9cxi, 9cxii `open-file-input-port` 9cxiii, 9cxiv `open-file-input/output-port` 9cxv, 9cxvi `open-file-output-port` 9cxvii, 9cxviii `open-input-file` 9cxix `open-output-file` 9cxx `open-string-input-port` 9cxxi `open-string-output-port` 9cxxii output ports 9cxxiii `output-port-buffer-mode` 9cxxiv `output-port?` 9cxxv, 9cxxvi

`parent` 7xvii `parent-rtd` 7xviii `partition` 4xvii pattern variable 13xv `peek-char` 9cxxvii, 9cxxviii port 9cxxix `port-eof?` 9cxxx `port-has-port-position?` 9cxxxi `port-has-set-port-position!?` 9cxxxii `port-position` 9cxxxiii `port-transcoder` 9cxxxiv `port?` 9cxxxv position 9cxxxvi promise 20ix protocol 7xix `protocol` 7xx `put-bytevector` 9cxxxvii, 9cxxxviii `put-char` 9cxxxix `put-datum` 9cxl `put-string` 9cxli, 9cxlii, 9cxliii `put-u8` 9cxliv

`quasisyntax` 13xvi `quotient` 20x

`raise` 8xlvi `raise-continuable` 8xlvii `read` 9cxlv, 9cxlvi `read-char` 9cxlvii, 9cxlviii `real->flonum` 12cxxi record 7xxi record constructor 7xxii, 7xxiii `record-accessor` 7xxiv `record-constructor` 7xxv record-constructor descriptor 7xxvi `record-constructor-descriptor` 7xxvii `record-field-mutable?` 7xxviii `record-mutator` 7xxix `record-predicate` 7xxx `record-rtd` 7xxxi record-type descriptor 7xxxii, 7xxxiii `record-type-descriptor` 7xxxiv `record-type-descriptor?` 7xxxv `record-type-field-names` 7xxxvi `record-type-generative?` 7xxxvii `record-type-name` 7xxxviii `record-type-opaque?` 7xxxix `record-type-parent` 7xl `record-type-sealed?` 7xli `record-type-uid` 7xlii `record?` 7xliii region 6iii `remainder` 20xi `remove` 4xviii `remp` 4xix `remq` 4xx `remv` 4xxi `(rnrs (6))` 16 `(rnrs arithmetic bitwise (6))` 12cxxii `(rnrs arithmetic fixnums (6))` 12cxxiii `(rnrs arithmetic flonums (6))` 12cxxiv `(rnrs bytevectors (6))` 3lviii `(rnrs conditions (6))` 8xlviii `(rnrs control (6))` 6iv `(rnrs enums (6))` 15xviii `(rnrs exceptions (6))` 8xlix `(rnrs files (6))` 10iii `(rnrs hashtables (6))` 14xxviii `(rnrs io ports (6))` 9cxlix `(rnrs io simple (6))` 9cl `(rnrs lists (6))` 4xxii `(rnrs mutable-pairs (6))` 18 `(rnrs mutable-strings (6))` 19 `(rnrs programs (6))` 11iv `(rnrs r5rs (6))` 20xii `(rnrs records inspection (6))` 7xliv `(rnrs records procedural (6))` 7xlv `(rnrs records syntactic (6))` 7xlvi `(rnrs sorting (6))` 5ii `(rnrs syntax-case (6))` 13xvii `(rnrs unicode (6))` 2xvii rtd 7xlvii

`scheme-report-environment` 20xiii sealed 7xlviii `sealed` 7xlix `&serious` 8l `serious-condition?` 8li `set-car!` 18ii `set-cdr!` 18iii `set-port-position!` 9cli simple condition 8lii `simple-conditions` 8liii `sint-list->bytevector` 3lix `standard-error-port` 9clii `standard-input-port` 9cliii `standard-output-port` 9cliv `string->bytevector` 9clv `string->utf16` 3lx, 3lxi `string->utf32` 3lxii, 3lxiii `string->utf8` 3lxiv `string-ci-hash` 14xxix `string-ci<=?` 2xviii `string-ci<?` 2xix `string-ci=?` 2xx `string-ci>=?` 2xxi `string-ci>?` 2xxii `string-downcase` 2xxiii `string-fill!` 19ii `string-foldcase` 2xxiv `string-hash` 14xxx `string-normalize-nfc` 2xxv `string-normalize-nfd` 2xxvi `string-normalize-nfkc` 2xxvii `string-normalize-nfkd` 2xxviii `string-set!` 19iii `string-titlecase` 2xxix `string-upcase` 2xxx substitution 13xviii `symbol-hash` 14xxxi `&syntax` 8liv `syntax` 13xix syntax object 13xx `syntax->datum` 13xxi `syntax-case` 13xxii `syntax-violation` 13xxiii, 13xxiv `syntax-violation-form` 8lv `syntax-violation-subform` 8lvi `syntax-violation?` 8lvii

textual port 9clvi textual ports 9clvii `textual-port?` 9clviii `transcoded-port` 9clix transcoder 9clx `transcoder-codec` 9clxi `transcoder-eol-style` 9clxii `transcoder-error-handling-mode` 9clxiii transformation procedure 13xxv transformer 13xxvi

`u8-list->bytevector` 3lxv `uint-list->bytevector` 3lxvi `&undefined` 8lviii `undefined-violation?` 8lix universe 15xix `unless` 6v `unsyntax` 13xxvii `unsyntax-splicing` 13xxviii `utf-16-codec` 9clxiv `utf-8-codec` 9clxv `utf16->string` 3lxvii `utf32->string` 3lxviii `utf8->string` 3lxix

variable transformer 13xxix, 13xxx `vector-sort` 5iii `vector-sort!` 5iv `&violation` 8lx `violation?` 8lxi

`&warning` 8lxii `warning?` 8lxiii `when` 6vi `&who` 8lxiv `who-condition?` 8lxv `with-exception-handler` 8lxvi `with-input-from-file` 9clxvi `with-output-to-file` 9clxvii `with-syntax` 13xxxi wrap 13xxxii wrapped syntax object 13xxxiii `write` 9clxviii, 9clxix `write-char` 9clxx, 9clxxi