[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
7.6.2.2 rnrs base
The (rnrs base (6))
library exports the procedures and syntactic
forms described in the main section of the Report
(see R6RS Base library in The Revised^6 Report on the Algorithmic Language Scheme). They are
grouped below by the existing manual sections to which they correspond.
- Scheme Procedure: boolean? obj
- Scheme Procedure: not x
See section Booleans, for documentation.
- Scheme Procedure: symbol? obj
- Scheme Procedure: symbol->string sym
- Scheme Procedure: string->symbol str
See section Operations Related to Symbols, for documentation.
- Scheme Procedure: char? obj
- Scheme Procedure: char=?
- Scheme Procedure: char<?
- Scheme Procedure: char>?
- Scheme Procedure: char<=?
- Scheme Procedure: char>=?
- Scheme Procedure: integer->char n
- Scheme Procedure: char->integer chr
See section Characters, for documentation.
- Scheme Procedure: list? x
- Scheme Procedure: null? x
See section List Predicates, for documentation.
- Scheme Procedure: pair? x
- Scheme Procedure: cons x y
- Scheme Procedure: car pair
- Scheme Procedure: cdr pair
- Scheme Procedure: caar pair
- Scheme Procedure: cadr pair
- Scheme Procedure: cdar pair
- Scheme Procedure: cddr pair
- Scheme Procedure: caaar pair
- Scheme Procedure: caadr pair
- Scheme Procedure: cadar pair
- Scheme Procedure: cdaar pair
- Scheme Procedure: caddr pair
- Scheme Procedure: cdadr pair
- Scheme Procedure: cddar pair
- Scheme Procedure: cdddr pair
- Scheme Procedure: caaaar pair
- Scheme Procedure: caaadr pair
- Scheme Procedure: caadar pair
- Scheme Procedure: cadaar pair
- Scheme Procedure: cdaaar pair
- Scheme Procedure: cddaar pair
- Scheme Procedure: cdadar pair
- Scheme Procedure: cdaadr pair
- Scheme Procedure: cadadr pair
- Scheme Procedure: caaddr pair
- Scheme Procedure: caddar pair
- Scheme Procedure: cadddr pair
- Scheme Procedure: cdaddr pair
- Scheme Procedure: cddadr pair
- Scheme Procedure: cdddar pair
- Scheme Procedure: cddddr pair
See section Pairs, for documentation.
- Scheme Procedure: number? obj
See section Scheme’s Numerical “Tower”, for documentation.
- Scheme Procedure: string? obj
See section String Predicates, for documentation.
- Scheme Procedure: procedure? obj
See section Procedure Properties and Meta-information, for documentation.
- Scheme Syntax: define name value
- Scheme Syntax: set! variable-name value
See section Defining and Setting Variables, for documentation.
- Scheme Syntax: define-syntax keyword expression
- Scheme Syntax: let-syntax ((keyword transformer) …) exp1 exp2 …
- Scheme Syntax: letrec-syntax ((keyword transformer) …) exp1 exp2 …
See section Defining Macros, for documentation.
- Scheme Syntax: identifier-syntax exp
See section Identifier Macros, for documentation.
- Scheme Syntax: syntax-rules literals (pattern template) ...
See section Syntax-rules Macros, for documentation.
- Scheme Syntax: lambda formals body
See section Lambda: Basic Procedure Creation, for documentation.
- Scheme Syntax: let bindings body
- Scheme Syntax: let* bindings body
- Scheme Syntax: letrec bindings body
- Scheme Syntax: letrec* bindings body
See section Local Variable Bindings, for documentation.
- Scheme Syntax: let-values bindings body
- Scheme Syntax: let*-values bindings body
See section SRFI-11 - let-values, for documentation.
- Scheme Syntax: begin expr1 expr2 ...
See section Sequencing and Splicing, for documentation.
- Scheme Syntax: quote expr
- Scheme Syntax: quasiquote expr
- Scheme Syntax: unquote expr
- Scheme Syntax: unquote-splicing expr
See section Expression Syntax, for documentation.
- Scheme Syntax: if test consequence [alternate]
- Scheme Syntax: cond clause1 clause2 ...
- Scheme Syntax: case key clause1 clause2 ...
See section Simple Conditional Evaluation, for documentation.
- Scheme Syntax: and expr ...
- Scheme Syntax: or expr ...
See section Conditional Evaluation of a Sequence of Expressions, for documentation.
- Scheme Procedure: eq? x y
- Scheme Procedure: eqv? x y
- Scheme Procedure: equal? x y
- Scheme Procedure: symbol=? symbol1 symbol2 ...
See section Equality, for documentation.
symbol=?
is identical toeq?
.
- Scheme Procedure: complex? z
See section Complex Numbers, for documentation.
- Scheme Procedure: real-part z
- Scheme Procedure: imag-part z
- Scheme Procedure: make-rectangular real_part imaginary_part
- Scheme Procedure: make-polar x y
- Scheme Procedure: magnitude z
- Scheme Procedure: angle z
See section Complex Number Operations, for documentation.
- Scheme Procedure: sqrt z
- Scheme Procedure: exp z
- Scheme Procedure: expt z1 z2
- Scheme Procedure: log z
- Scheme Procedure: sin z
- Scheme Procedure: cos z
- Scheme Procedure: tan z
- Scheme Procedure: asin z
- Scheme Procedure: acos z
- Scheme Procedure: atan z
See section Scientific Functions, for documentation.
- Scheme Procedure: real? x
- Scheme Procedure: rational? x
- Scheme Procedure: numerator x
- Scheme Procedure: denominator x
- Scheme Procedure: rationalize x eps
See section Real and Rational Numbers, for documentation.
- Scheme Procedure: exact? x
- Scheme Procedure: inexact? x
- Scheme Procedure: exact z
- Scheme Procedure: inexact z
See section Exact and Inexact Numbers, for documentation. The
exact
andinexact
procedures are identical to theinexact->exact
andexact->inexact
procedures provided by Guile’s code library.
- Scheme Procedure: integer? x
See section Integers, for documentation.
- Scheme Procedure: odd? n
- Scheme Procedure: even? n
- Scheme Procedure: gcd x ...
- Scheme Procedure: lcm x ...
- Scheme Procedure: exact-integer-sqrt k
See section Operations on Integer Values, for documentation.
- Scheme Procedure: =
- Scheme Procedure: <
- Scheme Procedure: >
- Scheme Procedure: <=
- Scheme Procedure: >=
- Scheme Procedure: zero? x
- Scheme Procedure: positive? x
- Scheme Procedure: negative? x
See section Comparison Predicates, for documentation.
- Scheme Procedure: for-each f lst1 lst2 ...
See section Fold, Unfold & Map, for documentation.
- Scheme Procedure: list elem …
See section List Constructors, for documentation.
- Scheme Procedure: length lst
- Scheme Procedure: list-ref lst k
- Scheme Procedure: list-tail lst k
See section List Selection, for documentation.
- Scheme Procedure: append lst … obj
- Scheme Procedure: append
- Scheme Procedure: reverse lst
See section Append and Reverse, for documentation.
- Scheme Procedure: number->string n [radix]
- Scheme Procedure: string->number str [radix]
See section Converting Numbers To and From Strings, for documentation.
- Scheme Procedure: string char ...
- Scheme Procedure: make-string k [chr]
- Scheme Procedure: list->string lst
See section String Constructors, for documentation.
- Scheme Procedure: string->list str [start [end]]
See section List/String conversion, for documentation.
- Scheme Procedure: string-length str
- Scheme Procedure: string-ref str k
- Scheme Procedure: string-copy str [start [end]]
- Scheme Procedure: substring str start [end]
See section String Selection, for documentation.
- Scheme Procedure: string=? s1 s2 s3 …
- Scheme Procedure: string<? s1 s2 s3 …
- Scheme Procedure: string>? s1 s2 s3 …
- Scheme Procedure: string<=? s1 s2 s3 …
- Scheme Procedure: string>=? s1 s2 s3 …
See section String Comparison, for documentation.
- Scheme Procedure: string-append arg …
See section Reversing and Appending Strings, for documentation.
- Scheme Procedure: string-for-each proc s [start [end]]
See section Mapping, Folding, and Unfolding, for documentation.
- Scheme Procedure: + z1 ...
- Scheme Procedure: - z1 z2 ...
- Scheme Procedure: * z1 ...
- Scheme Procedure: / z1 z2 ...
- Scheme Procedure: max x1 x2 ...
- Scheme Procedure: min x1 x2 ...
- Scheme Procedure: abs x
- Scheme Procedure: truncate x
- Scheme Procedure: floor x
- Scheme Procedure: ceiling x
- Scheme Procedure: round x
See section Arithmetic Functions, for documentation.
- Scheme Procedure: div x y
- Scheme Procedure: mod x y
- Scheme Procedure: div-and-mod x y
These procedures accept two real numbers x and y, where the divisor y must be non-zero.
div
returns the integer q andmod
returns the real number r such that x = q*y + r and 0 <= r < abs(y).div-and-mod
returns both q and r, and is more efficient than computing each separately. Note that when y > 0,div
returns floor(x/y), otherwise it returns ceiling(x/y).(div 123 10) ⇒ 12 (mod 123 10) ⇒ 3 (div-and-mod 123 10) ⇒ 12 and 3 (div-and-mod 123 -10) ⇒ -12 and 3 (div-and-mod -123 10) ⇒ -13 and 7 (div-and-mod -123 -10) ⇒ 13 and 7 (div-and-mod -123.2 -63.5) ⇒ 2.0 and 3.8 (div-and-mod 16/3 -10/7) ⇒ -3 and 22/21
- Scheme Procedure: div0 x y
- Scheme Procedure: mod0 x y
- Scheme Procedure: div0-and-mod0 x y
These procedures accept two real numbers x and y, where the divisor y must be non-zero.
div0
returns the integer q andmod0
returns the real number r such that x = q*y + r and -abs(y/2) <= r < abs(y/2).div0-and-mod0
returns both q and r, and is more efficient than computing each separately.Note that
div0
returns x/y rounded to the nearest integer. When x/y lies exactly half-way between two integers, the tie is broken according to the sign of y. If y > 0, ties are rounded toward positive infinity, otherwise they are rounded toward negative infinity. This is a consequence of the requirement that -abs(y/2) <= r < abs(y/2).(div0 123 10) ⇒ 12 (mod0 123 10) ⇒ 3 (div0-and-mod0 123 10) ⇒ 12 and 3 (div0-and-mod0 123 -10) ⇒ -12 and 3 (div0-and-mod0 -123 10) ⇒ -12 and -3 (div0-and-mod0 -123 -10) ⇒ 12 and -3 (div0-and-mod0 -123.2 -63.5) ⇒ 2.0 and 3.8 (div0-and-mod0 16/3 -10/7) ⇒ -4 and -8/21
- Scheme Procedure: real-valued? obj
- Scheme Procedure: rational-valued? obj
- Scheme Procedure: integer-valued? obj
These procedures return
#t
if and only if their arguments can, respectively, be coerced to a real, rational, or integer value without a loss of numerical precision.real-valued?
will return#t
for complex numbers whose imaginary parts are zero.
- Scheme Procedure: nan? x
- Scheme Procedure: infinite? x
- Scheme Procedure: finite? x
nan?
returns#t
if x is a NaN value,#f
otherwise.infinite?
returns#t
if x is an infinite value,#f
otherwise.finite?
returns#t
if x is neither infinite nor a NaN value, otherwise it returns#f
. Every real number satisfies exactly one of these predicates. An exception is raised if x is not real.
- Scheme Syntax: assert expr
Raises an
&assertion
condition if expr evaluates to#f
; otherwise evaluates to the value of expr.
- Scheme Procedure: error who message irritant1 ...
- Scheme Procedure: assertion-violation who message irritant1 ...
These procedures raise compound conditions based on their arguments: If who is not
#f
, the condition will include a&who
condition whosewho
field is set to who; a&message
condition will be included with amessage
field equal to message; an&irritants
condition will be included with itsirritants
list given byirritant1 ...
.error
produces a compound condition with the simple conditions described above, as well as an&error
condition;assertion-violation
produces one that includes an&assertion
condition.
- Scheme Procedure: vector-map proc v
- Scheme Procedure: vector-for-each proc v
These procedures implement the
map
andfor-each
contracts over vectors.
- Scheme Procedure: vector arg …
- Scheme Procedure: vector? obj
- Scheme Procedure: make-vector len
- Scheme Procedure: make-vector len fill
- Scheme Procedure: list->vector l
- Scheme Procedure: vector->list v
See section Dynamic Vector Creation and Validation, for documentation.
- Scheme Procedure: vector-length vector
- Scheme Procedure: vector-ref vector k
- Scheme Procedure: vector-set! vector k obj
- Scheme Procedure: vector-fill! v fill
See section Accessing and Modifying Vector Contents, for documentation.
- Scheme Procedure: call-with-current-continuation proc
- Scheme Procedure: call/cc proc
See section Continuations, for documentation.
- Scheme Procedure: values arg …
- Scheme Procedure: call-with-values producer consumer
See section Returning and Accepting Multiple Values, for documentation.
- Scheme Procedure: dynamic-wind in_guard thunk out_guard
See section Dynamic Wind, for documentation.
- Scheme Procedure: apply proc arg … arglst
See section Procedures for On the Fly Evaluation, for documentation.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on April 20, 2013 using texi2html 5.0.