Notes

Minimal Scheme

x quote
x if
x lambda
x define
set!
begin
x cons
x car
x cdr
x null?

A somewhat longer list:

x lambda - Defines a new anonymous procedure.

x define - Defines a named procedure or value.

x if - Conditional expression that evaluates one of two expressions based on a condition.

let - Defines a new variable within a local scope.

let* - Like let, but allows defining variables that depend on each other.

letrec - Like let, but allows defining mutually recursive variables.

set! - Assigns a new value to an existing variable.

begin - Evaluates a sequence of expressions in order and returns the result of the last expression.

x quote - Returns a given expression without evaluating it.

x list - Constructs a list of its arguments.

x cons - Constructs a new pair.

x car - Returns the first element of a pair.

x cdr - Returns the second element of a pair.

x null? - Returns #t if the argument is the empty list.

eq? - Returns #t if two arguments are the same object in memory.

equal? - Returns #t if two arguments are structurally equivalent.

x map - Applies a given procedure to each element of a list and returns a new list of the results.

fold (also known as reduce) - Applies a given procedure to a list, starting with an initial value, and accumulates the results.

filter - Returns a new list containing only the elements of a given list that satisfy a given predicate.

cond - A more flexible version of if that allows evaluating multiple expressions based on different conditions.

and - Evaluates a sequence of expressions and returns #f if any of them evaluate to #f.

or - Evaluates a sequence of expressions and returns #t if any of them evaluate to #t.

not - Returns the logical negation of its argument.

x apply - Calls a procedure with a list of arguments