R5RS Features
Table of Contents
1. Definitions
- define
- define-syntax
2. Expressions
2.1. Primitive Expressions
- <variable>
- quote
- <quoto-datum>
- <constant>
- procedure call
- lambda
- if
- set!
2.2. Derived Expressions
- cond
- case
- and
- or
- let
- let*
- letrec
- begin
- do
- named-let
- delay
- quasiquote (and unquote, unquote-splice)
- let-syntax
- letrec-syntax
3. Standard Procedures
3.1. Equivalence Predicates
- eqv?
- eq?
- equal?
3.2. Numbers
- read-macro: #b,#o,#d,#x, #e, #i and postfix `SFDL`
- number?
- complex?
- real?
- rational
- integer?
- exact?
- inexact?
- =
- >
- <
- >=
- <=
- zero?
- positive?
- negative?
- odd?
- even?
- max
- min
- +
- *
- -
- /
- abs
- quotient
- remainder
- modulo
- gcd
- lcm
- numerator
- denominator
- floor
- ceiling
- truncate
- round
- rationalize
- exp
- log
- sin
- cos
- tan
- asin
- acos
- atan
- atan
- sqrt
- expt
- make-rectangular
- make-polar
- real-part
- imag-part
- magnitude
- angle
- exact->inexact
- inexact->exact
- number->string
- string->number
3.3. Booleans
- not
- boolean?
3.4. Pairs and Lists
- pair?
- cons
- set-car!
- set-cdr!
- car
- cdr
- caar
- cadr
- cdar
- cddr
- caaar
- caadr
- cadar
- caddr
- cdaar
- cdadr
- cddar
- cdddr
- caaaar
- caaadr
- caadar
- caaddr
- cadaar
- cadadr
- caddar
- cadddr
- cdaaar
- cdaadr
- cdadar
- cdaddr
- cddaar
- cddadr
- cdddar
- cddddr
- null?
- list?
- list
- length
- append
- reverse
- list-tail
- list-ref
- memq
- memv
- member
- assq
- assv
- assoc
3.5. Symbol
- symbol?
- symbol->string
- string->symbol
3.6. Characters
- #\<char> (read-macro)
- char?
- char=?
- char>?
- char<?
- char>=?
- char<=?
- char-ci=?
- char-ci>?
- char-ci<?
- char-ci>=?
- char-ci<=?
- char-alphabetic?
- char-numeric?
- char-whitespace?
- char-upper-case?
- char-lower-case?
- char->integer
- integer->char
- char-upcase
- char-downcase
3.7. Strings
- string?
- make-string
- string
- string-length
- string-ref
- string-set!
- string=?
- string>?
- string<?
- string>=?
- string<=?
- string-ci=?
- string-ci>?
- string-ci<?
- string-ci>=?
- string-ci<=?
- substring
- string-append
- string->list
- list->string
- string-copy
- string-fill!
3.8. Vectors
- vector?
- make-vector
- vector
- vector-length
- vector-ref
- vector-set!
- vector->list
- list->vector
- vector-fill!
3.9. Control Features
- procedure?
- apply
- map
- for-each
- force
- call-with-current-continuation
- values
- call-with-values
- dynamic-wind
3.10. Eval
- eval
- scheme-report-environment
- null-environment
- interaction-environment
3.11. IO
3.11.1. IO: Ports
- call-with-input-file
- call-with-output-file
- input-port?
- output-port?
- current-input-port
- current-oputput-port
- with-input-from-file
- with-output-to-file
- open-input-file
- open-output-file
- close-input-file
- close-output-file
3.11.2. IO: Input
- read
- read-char
- peek-char
- eof-object?
- char-ready?
3.11.3. IO: Output
- write
- display
- newline
- write-char
3.12. System Interface
- load
- transcript-on
- transcript-off
4. Discuss and Comment
Have few questions or feedback? Feel free to send me(killian.zhuo📧gmail.com) an email!