Macros

Branching

when

Evaluates its body when a condition is true.

unless

Evaluates its body when a condition is false.

and

Performs a lazy Boolean AND.

or

Performs a lazy Boolean OR.

cond

Tests several conditions in turn.

cond-eq?

Successively tests a value for equality using eq?.

cond-same?

Successively tests a value for equality using same?.

cond==

Successively tests a value for equality using ==.

Looping

loop

An endless loop.

break

Breaks out of a loop.

continue

Skips the rest of a loop's current iteration.

while

Loops as long as a condition is true.

until

Loops as long as a condition is false.

for

Loops over each value produced by an iterator.

forn

Loops over a numeric range.

forni

Loops over an inclusive numeric range.

yield-from

Yields each value produced by an iterator.

Places

bind-place!

Defines a new type of place.

defplace

A shorthand for bind-place!.

inc!

Performs in-place addition or increment.

dec!

Performs in-place subtraction or decrement.

mul!

Performs in-place multiplication.

div!

Performs in-place division or reciprocation.

div-euclid!

Performs in-place Euclidean division or reciprocation.

rem!

Performs in-place remainder.

rem-euclid!

Performs in-place Euclidean remainder.

abs!

Replaces a number with its absolute value, in place.

neg!

Negates a number, in place.

seek!

Moves a number closer to a target number, in place.

antiseek!

Moves a number away from another number, in place.

clamp!

Clamps a number to lie within a numeric range, in place.

swap!

Exchange values stored in two different places.

Patterns

match

Attempt to match a value against several patterns.

matches?

Returns #t if a value matches a pattern.

when-let

Evaluates some forms when a value matches a pattern.

Miscellaneous

do-0

Evaluates multiple forms, returning the first form's result.

include

Replaces itself with the contents of a file.

->

Alternative syntax for nested function calls.

->>

Alternative syntax for nested function calls.

backquote

Quasi-quotation.

unquote

Evaluate a quasi-quoted form.

Abbreviations
Types