How to reason about it
- The R7RS spelling is the preferred name. Documented aliases mean the same thing, and deprecated aliases emit warnings.
- Every procedure takes either a fixed number of arguments or a declared variable number, and every type or domain failure is a deterministic E3xx.
- The family pages own signatures and edge behavior, and this page is the navigation index.
- The built-in denominator is exactly 205 names, and the complete list is printed below.
Procedure families
| Family | Preferred names | Arguments / result |
|---|---|---|
| Arithmetic | + - * / abs square min max floor ceiling round truncate | declared variable count or one argument, returning a number |
| Integer division | modulo quotient remainder floor-quotient floor-remainder truncate-quotient truncate-remainder floor/ truncate/ | 2 integers, returning one or two values |
| Equality | eq? eqv? equal? = < > <= >= boolean=? | 2 or more values in the documented domain, returning a boolean |
| Predicates | zero? positive? negative? even? odd? null? pair? list? empty? boolean? char? string? symbol? number? integer? procedure? vector? bytevector? | 1 argument, returning a boolean |
| Lists / aggregates | cons car cdr list append reverse list-ref vector vector-ref vector-set! bytevector-u8-ref | family-specific, returning a value or zero values |
| Higher order | map filter reduce fold-left fold-right all? any? apply for-each vector-map string-map | procedure plus collection(s), returning a collection, an accumulator, or zero values |
| Exceptions / output | error raise raise-continuable with-exception-handler display write newline println | contract-specific, producing a signal, one or more values, or zero values |
The closed list of 205 names
!= % * + - / < <= = == > >= abs all? any? append apply assoc assq
assv boolean=? boolean? bytevector bytevector-length
bytevector-u8-ref bytevector? caaaar caaadr caaar caadar caaddr
caadr caar cadaar cadadr cadar caddar cadddr caddr cadr
call-with-current-continuation call-with-values call/cc car cdaaar
cdaadr cdaar cdadar cdaddr cdadr cdar cddaar cddadr cddar cdddar
cddddr cdddr cddr cdr ceiling char->integer char-alphabetic?
char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase
char-foldcase char-lower-case? char-numeric? char-upcase
char-upper-case? char-whitespace? char<=? char<? char=? char>=?
char>? char? complex? cons display dynamic-wind empty? eq? equal?
eqv? error error-object-irritants error-object-message error-object?
even? exact exact->inexact exact-integer-sqrt exact-integer? exact?
expt filter first floor floor-quotient floor-remainder floor/
fold-left fold-right for-each gcd inexact inexact->exact inexact?
integer->char integer? lcm length list list->string list->vector
list-copy list-first list-ref list-rest list-tail list?
make-bytevector make-list make-string make-vector map max member
memq memv min modulo negative? newline not nth null? number->string
number? odd? pair? positive? println procedure? quotient raise
raise-continuable rational? real? reduce remainder rest reverse
round square string->list string->number string->symbol
string->vector string-append string-ci<=? string-ci<? string-ci=?
string-ci>=? string-ci>? string-copy string-downcase string-foldcase
string-for-each string-length string-map string-ref string-upcase
string<=? string<? string=? string>=? string>? string? substring
symbol->string symbol=? symbol? truncate truncate-quotient
truncate-remainder truncate/ values vector vector->list
vector->string vector-copy vector-for-each vector-length vector-map
vector-ref vector-set! vector? with-exception-handler write zero?A common mistake
An unlisted host global is not an implicit primitive.
Keep going
The family pages carry the exact signatures, domains, and failure codes behind these names.
Numeric Procedures · Lists and Aggregates · Text and Bytes · Higher-Order Procedures