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.