Scheme
summary
Variable references
Literal expressions
- (quote <datum>)
- '<datum>
- <constant>
Procedure calls
- (<operator> <operand1> …)
Procedures
- (lambda <formals> <body>)
Conditionals
- (if <test> <consequent>
<alternate>)
- (if <test> <consequent>)
Assignments
- (set! <variable> <expression>)
Conditionals
- (cond <clause1> <clause2> …)
- (case <key> <clause1> <clause2>
…)
- (and <test1> …)
- (or <test1> …)
Binding constructs
- (let <bindings> <body>)
- (let* <bindings> <body>)
- (letrec <bindings> <body>)
Sequencing
- (begin <expression1> <expression2>
…)
Iteration
- (do ((<variable1> <init1>
<step1>) …) (<test> <expression> …)
<command> …)
- (let <variable> <bindings>
<body>)
Delayed evaluation
Quasiquotation
- (quasiquote <qq template>)
- `<qq template>
Macros
Binding constructs for syntactic keywords
- (let-syntax <bindings> <body>)
- (letrec-syntax <bindings> <body>)
Syntax definitions
- (define-syntax <keyword> <transformer
spec>)
Link
- (eqv? obj1
obj2)
- (eq? obj1 obj2)
- (equal? obj1 obj2)
Numerical operations
- (number? obj)
- (complex? obj)
- (real? obj)
- (rational? obj)
- (integer? obj)
- (exact? z)
- (inexact? z)
- (= z1 z2 z3 …)
- (< x1 x2 x3 …)
- (> x1 x2 x3 …)
- (<= x1 x2 x3 …)
- (>= x1 x2 x3 …)
- (zero? z)
- (positive? x)
- (negative? x)
- (odd? n)
- (even? n)
- (max x1 x2 …)
- (min x1 x2 …)
- (+ z1 …)
- (* z1 …)
- (- z1 z2)
- (- z)
- (- z1 z2 …)
- (/ z1 z2)
- (/ z)
- (/ z1 z2 …)
- (abs x)
- (quotient n1 n2)
- (remainder n1 n2)
- (modulo n1 n2)
- (gcd n1 …)
- (lcm n1 …)
- (numerator q)
- (denominator q)
- (floor x)
- (ceiling x)
- (truncate x)
- (round x)
- (rationalize x y)
- (exp z)
- (log z)
- (sin z)
- (cos z)
- (tan z)
- (asin z)
- (acos z)
- (atan z)
- (atan y x)
- (sqrt z)
- (expt z1 z2)
- (make-rectangular x1 x2)
- (make-polar x3 x4)
- (real-part z)
- (imag-part z)
- (magnitude z)
- (angle z)
- (exact->inexact z)
- (inexact->exact z)
Numerical input and output
- (number->string z)
- (number->string z radix)
- (string->number string)
- (string->number string radix)
Booleans
Pairs and lists
- (pair? obj)
- (cons obj1 obj2)
- (car pair)
- (cdr pair)
- (set-car! pair obj)
- (set-cdr! pair obj)
- (c[ad][ad]r pair)
- (c[ad][ad][ad]r pair)
- (c[ad][ad][ad][ad]r pair)
- (null? obj)
- (list? obj)
- (list obj …)
- (length list)
- (append list …)
- (reverse list)
- (list-tail list k)
- (list-ref list k)
- (memq obj list)
- (memv obj list)
- (member obj list)
- (assq obj alist)
- (assv obj alist)
- (assoc obj alist)
Symbols
- (symbol? obj)
- (symbol->string symbol)
- (string->symbol string)
Characters
- (char? obj)
- (char=? char1 char2)
- (char<? char1 char2)
- (char>? char1 char2)
- (char<=? char1 char2)
- (char>=? char1 char2)
- (char-ci=? char1 char2)
- (char-ci<? char1 char2)
- (char-ci>? char1 char2)
- (char-ci<=? char1 char2)
- (char-ci>=? char1 char2)
- (char-alphabetic? char)
- (char-numeric? char)
- (char-whitespace? char)
- (char-upper-case? letter)
- (char-lower-case? letter)
- (char->integer char)
- (integer->char n)
- (char-upcase char)
- (char-downcase char)
Strings
- (string? obj)
- (make-string k)
- (make-string k char)
- (string char …)
- (string-length string)
- (string-ref string k)
- (string-set! string k char)
- (string=? string1 string2)
- (string-ci=? string1 string2)
- (string<? string1 string2)
- (string>? string1 string2)
- (string<=? string1 string2)
- (string>=? string1 string2)
- (string-ci<? string1 string2)
- (string-ci>? string1 string2)
- (string-ci<=? string1 string2)
- (string-ci>=? string1 string2)
- (substring string start end)
- (string-append string …)
- (string->list string)
- (list->string list)
- (string-copy string)
- (string-fill! string char)
Vectors
- (vector? obj)
- (make-vector k)
- (make-vector k fill)
- (vector obj …)
- (vector-length vector)
- (vector-ref vector k)
- (vector-set! vector k obj)
- (vector->list vector)
- (list->vector list)
- (vector-fill! vector fill)
Link
- (procedure? obj)
- (apply proc arg1 … args)
- (map proc list1 list2 …)
- (for-each proc list1 list2 …)
- (force promise)
- (call-with-current-continuation
proc)
- (values obj …)
- (call-with-values producer
consumer)
- (dynamic-wind before thunk
after)
Eval
Link
- (eval expression environment-specifier)
- (scheme-report-environment version)
- (null-environment version)
- (interaction-environment)
Input and
output
Ports
- (call-with-input-file string proc)
- (call-with-output-file string proc)
- (input-port? obj)
- (output-port? obj)
- (current-input-port)
- (current-output-port)
- (with-input-from-file string thunk)
- (with-output-to-file string thunk)
- (open-input-file filename)
- (open-output-file filename)
- (close-input-port port)
- (close-output-port port)
Input
- (read)
- (read port)
- (read-char)
- (read-char port)
- (peek-char)
- (peek-char port)
- (eof-object? obj)
- (char-ready?)
- (char-ready? port)
Output
- (write obj)
- (write obj port)
- (display obj)
- (display obj port)
- (newline)
- (newline port)
- (write-char char)
- (write-char char port)
System interface
- (load filename)
- (transcript-on filename)
- (transcript-off)
|