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, 5(4):295–326, 1992.

[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

@... 14, 14ii @=> 9 @_ 14iii

@accessor 8 @antimark 14iv @&assertion 9ii @assertion-violation? 9iii @assoc 5 @assp 5ii @assq 5iii @assv 5iv

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

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

@datum->syntax 14vi @define-condition-type 9xvi @define-enumeration 16 @define-record-type 8iv @delay 21ii @delete-file 11 @display 10xxv, 10xxvi @do 7ii

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

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

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

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

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

@latin-1-codec 10lxxxii @lazy evaluation 21vi @least-fixnum 13cxiii @&lexical 9xxvii @lexical-violation? 9xxviii @list-sort 6 @little-endian 4liii @lookahead-char 10lxxxiii @lookahead-u8 10lxxxiv

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

@native-endianness 4lvi @native-eol-style 10cvi @native-transcoder 10cvii @newline 10cviii, 10cix @&no-infinities 13cxvi @no-infinities-violation? 13cxvii @&no-nans 13cxviii @no-nans-violation? 13cxix @&non-continuable 9xliv @non-continuable-violation? 9xlv @nongenerative 8xiv @nongenerative 8xv @null-environment 21viii @number 13cxx

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

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

@quasisyntax 14xvi @quotient 21x

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

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

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

@u8-list->bytevector 4lxv @uint-list->bytevector 4lxvi @&undefined 9lviii @undefined-violation? 9lix @universe 16xix @unless 7v @unsyntax 14xxvii @unsyntax-splicing 14xxviii @utf-16-codec 10clxiv @utf-8-codec 10clxv @utf16->string 4lxvii @utf32->string 4lxviii @utf8->string 4lxix

@variable transformer 14xxix, 14xxx @vector-sort 6iii @vector-sort! 6iv @&violation 9lx @violation? 9lxi

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