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, Proceedings 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 Proceedings 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

@ idxitem

@... 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