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