Procedure Index

Find a built-in procedure among 205 names and follow its reference for arguments, results, and errors.

Find a built-in procedure by name or task, then open its reference for arguments, results, and errors. The complete list below contains 205 names, including aliases.

Start with a task

To transform every element of a list, use map from the higher-order family. Run this example in the Playground.

LISPEX
(map square (list 1 2 3))

Result

OUTPUT
(1 4 9)

map calls square on each element and collects the results in a new list. Follow the higher-order link in the table for the call's argument and return-value requirements.

Find the reference

The names in this table are examples from each family. Follow a link for exact calls, accepted types, and error codes.

TaskNames to look upArguments and results
Arithmetic+ - * / abs square min max floor ceiling round truncateone argument or a variable count, depending on the procedure; returns a number
Integer divisionmodulo quotient remainder floor-quotient floor-remainder truncate-quotient truncate-remainder floor/ truncate/two integers; returns one or two values
Equality and numeric comparisoneq? eqv? equal? = < > <= >= boolean=?exactly two arguments for eq?, eqv?, and equal?; two or more for the other comparisons shown; returns a boolean
Type tests and numeric testszero? positive? negative? even? odd? null? pair? list? empty? boolean? char? string? symbol? number? integer? procedure? vector? bytevector?one argument; returns a boolean
Lists and aggregate valuescons car cdr list append reverse list-ref vector vector-ref vector-set! bytevector-u8-refarguments depend on the procedure; returns one value or zero values
Strings, characters, and bytesstring-ref string-map char=? char->integer bytevector-u8-refarguments and results depend on the procedure
Higher-order proceduresmap filter reduce fold-left fold-right all? any? apply for-each vector-map string-maptraversal takes one collection; apply combines explicit arguments with a final list; the reference gives each result
Exceptions and outputerror raise raise-continuable with-exception-handler display write newline printlnarguments depend on the procedure; may raise an exception or return zero, one, or multiple values

Read a procedure's requirements

Each procedure accepts a fixed number of arguments or a stated variable number. If a call has the wrong argument count, check its signature, the written form of the call. For a type or allowed-value error, the E3xx code identifies the problem.

Use the R7RS name where one is available. R7RS is a Scheme language standard. Documented aliases have the same meaning, but deprecated aliases emit warnings.

All 205 built-in 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?

Call a name from your program

A built-in name is available directly. Define your own procedure before calling it by another name. Names from the calling application's environment do not automatically become Lispex procedures.