#
=
Performs assignment.
'
The abbreviation for quote
.
`
The abbreviation for backquote
.
~
The abbreviation for unquote
.
..
The abbreviation for splay
.
@
The abbreviation for atsign
.
.
The abbreviation for met-name
.
[]
The abbreviation for access
.
"{}"
The abbreviation for template-str
.
->
Alternative syntax for nested function calls.
->>
Alternative syntax for nested function calls.
+
Addition.
-
Subtraction or negation.
*
Multiplication.
/
Division or reciprocation.
%
Remainder.
==
Numeric equality test.
<
Numeric less-than test.
<=
Numeric less-than-or-equal test.
>
Numeric greater-than test.
>=
Numeric greater-than-or-equal test.
@self
Returns a reference to a method's self-object.
@class
Equivalent to (class-of @self)
.
@class-name
Equivalent to (class-name (class-of @self))
.
@state-name
Returns the name of the enclosing state
or state*
form.
@field
Refers to a property's backing field.
@base
Invokes a wrapped method, returning its result.
@enab!
Equivalent to (enab! @self state-name ..args)
.
@enab?
Equivalent to (enab? @self state-name)
.
@disab!
Equivalent to (disab! @self state-name)
.
==any?
Returns #t
if its first argument is numerically equal to any other argument.
A
abs
Absolute value.
abs!
Replaces a number with its absolute value, in place.
access
Retrieves an item from a collection.
access-abbrv
The abbreviation for access
.
access=
Mutates an item in a collection.
acos
Arccosine, in radians.
all?
Lazily tests whether all of an iterator's items match a predicate.
and
Performs a lazy Boolean AND.
antiseek
Moves away from a target value.
antiseek!
Moves a number away from another number, in place.
any?
Lazily tests whether any of an iterator's items match a predicate.
arg-limits
Returns a function's minimum and maximum argument count.
arr
Constructs a new, mutable array.
arr-from-elem
Constructs a new, mutable array by repeating a value.
arr?
Returns #t
if its argument is an array.
asin
Arcsine, in radians.
atan
Arctangent, in radians.
atsign
Accesses a method's self-object.
atsign
Accesses a method's self-object.
atsign-abbrv
The abbreviation for atsign
.
atsign-base
Invokes a wrapped method, returning its result.
atsign-class
Equivalent to (class-of @self)
.
atsign-class-name
Equivalent to (class-name (class-of @self))
.
atsign-disab-mut
Equivalent to (disab! @self state-name)
.
atsign-enab-mut
Equivalent to (enab! @self state-name ..args)
.
atsign-enab-p
Equivalent to (enab? @self state-name)
.
atsign-field
Refers to a property's backing field.
atsign-self
Returns a reference to a method's self-object.
atsign-state-name
Returns the name of the enclosing state
or state*
form.
B
backquote
Quasi-quotation.
backquote-abbrv
The abbreviation for backquote
.
bail
Triggers an error.
bind-classmacro!
Registers a classmacro.
bind-global!
Binds a global variable.
bind-macro!
Binds a global macro.
bind-place!
Defines a new type of place.
bitand
Bitwise AND.
bitnot
Bitwise NOT.
bitor
Bitwise inclusive OR.
bitsar
Arithmetic right shift.
bitshl
Left shift.
bitshr
Logical right shift.
bitxor
Bitwise exclusive OR.
block
Defines a pair of jump targets.
bool
Converts its argument to a boolean.
bool?
Returns #t
if its argument is a boolean.
break
Breaks out of a loop.
C
call-met
Invokes a method.
callable?
Returns #t
if its argument can be invoked as a function.
cbrt
Cube root.
ceil
Round up.
chain
Sequences multiple iterators, one after another.
chance?
Returns #t
or #f
in the given ratio.
char
Converts its argument to a character.
char?
Returns #t
if its argument is a character.
chunks
Iterates over non-overlapping sub-arrays.
chunks-exact
Iterates over non-overlapping sub-arrays with an exact size.
clamp
Clamps a value to a numeric range.
clamp!
Clamps a number to lie within a numeric range, in place.
class
Defines a class.
class-has-mixin?
Returns #t
if a class incorporates a particular mixin.
class-mixins
Returns all of a class' mixins.
class-name
Returns the name of a class.
class-of
Returns the class of an object or RData.
class?
Returns #t
if its argument is a class.
clear!
Deletes all items from a collection.
clone
Returns a shallow copy of its argument.
cloned
Clones another iterator's items.
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 ==
.
const
Defines one or more associated constants.
contains?
Returns #t
if a string contains a character or substring.
continue
Skips the rest of a loop's current iteration.
coro-finish!
Prematurely finishes a coroutine.
coro-run
Resumes a paused coroutine.
coro-state
Returns the current status of a coroutine.
coro?
Returns #t
if its argument is a coroutine.
cos
Cosine, in radians.
count
Consumes an iterator, counting its items.
cycle
Repeats another iterator indefinitely.
D
dbg
Prints its arguments, formatted for debugging.
dec!
Performs in-place subtraction or decrement.
deep-clone
Returns a deep, recursive copy of its argument.
deep-cloned
Recursively clones another iterator's items.
deep-freeze!
Recursively freezes a tree of collections.
def
A shorthand for bind-global!
.
defclass
Defines a class and binds it to a global variable.
defclassmacro
Shorthand for bind-classmacro!
.
defer
Defers evaluation until the end of the current lexical scope.
defer-yield
Defers evaluation until a coroutine is paused and/or resumed.
defmacro
A shorthand for bind-macro!
.
defmixin
Defines a mixin and binds it to a global variable.
defn
Defines a function and binds it to a global variable.
defplace
A shorthand for bind-place!
.
defstruct
Defines a struct.
del!
Deletes an item from a collection, without returning it.
del-global!
Unbinds a global variable.
del-macro!
Unbinds a global macro.
deque?
Returns #t
if its argument is a double-ended queue.
disab!
Disables a state.
div!
Performs in-place division or reciprocation.
div-euclid
Euclidean division.
div-euclid!
Performs in-place Euclidean division or reciprocation.
do
Performs sequential evaluation.
do-0
Evaluates multiple forms, returning the first form's result.
E
empty?
Returns #t
if a collection contains no items.
enab!
Enables a state.
enab?
Returns #t
if a state is currently enabled.
ends-with?
Tests whether one deque is the suffix of another.
ensure
Triggers an error when an assertion fails.
enumerate
Counts an iterator's items as they're yielded.
epr
Prints to the standard error stream.
eprn
Prints to the standard error stream, followed by a newline.
eq-any?
Returns #t
if its first argument is equal to any other argument.
eq?
Returns #t
if all of its arguments are equal to one another.
eval
Evaluates a value as a form.
eval-multi
Evaluates multiple values as forms.
even?
Returns #t
if its argument is even.
expand
Completely expands a form.
expand-1
Partially expands a form.
expand-multi
Completely expands multiple forms.
expander?
Returns #t
if its argument can be registered as a macro expander.
extend!
Inserts any number of key/value pairs into a table.
F
field
Defines one or more fields.
file-location
Returns a string describing the current file and line number.
filter
Discards items from another iterator which fail to match a predicate.
find
Returns the first of an iterator's items which match a predicate.
fini
Defines a finalizer method.
fini-mixin
Defines a mixin finalizer method.
fini-state
Defines a state finalizer method.
finish-block
Jumps to the end of an enclosing block.
flatten
Flattens nested structure.
flo
Converts its argument to a floating-point number.
flo->str
Converts a float to a string, with the specified number of digits after the decimal point.
flo-sign
Floating-point sign bit.
flo?
Returns #t
if its argument is a floating-point number.
floor
Round down.
fn
Defines a function.
fn-name
Returns a function's name.
fn-yields?
Returns #t
if a function might yield.
fn0
Defines a function with zero arguments.
fn1
Defines a function with one argument.
fn?
Returns #t
if its argument is a GameLisp function.
fold
Passes all of an iterator's items to an accumulator function.
for
Loops over each value produced by an iterator.
forn
Loops over a numeric range.
forni
Loops over an inclusive numeric range.
fract
Returns the fractional part of a float.
freed?
Returns #t
if an RData
has been freed.
freeze!
Freezes a collection so that it can no longer be mutated.
freeze-global!
Freezes a global variable.
fsm
Defines a set of mutually exclusive states.
G
gc
Runs the garbage collector.
gc-value
Retrieves information about the garbage collector.
gc-value=
Tunes the garbage collector.
gensym
Constructs a unique symbol.
global
Accesses a global variable.
global=
Assigns a new value to a global variable.
grow!
Increases a deque's size.
H
has-global?
Returns #t
if the given symbol has a global binding.
has-macro?
Returns #t
if the given symbol has a global macro binding.
has-met?
Returns #t
if the given name is bound to a method.
has-state?
Returns #t
if an object or class has a particular state.
has?
Returns #t
if a collection contains a particular item.
I
identity
Returns its argument.
if
Performs conditional evaluation.
inc!
Performs in-place addition or increment.
include
Replaces itself with the contents of a file.
inf?
Returns #t
if its argument is infinite.
init
Defines an initializer method.
init-mixin
Defines a mixin initializer method.
init-state
Defines a state initializer method.
insert!
Inserts one or more elements into a deque.
int
Converts its argument to an integer.
int->str
Converts an integer to a string, with the specified radix.
int?
Returns #t
if its argument is an integer.
is?
Returns #t
if an object or RData belongs to the specified class.
iter
Constructs an iterator over a collection.
iter-double-ended?
Returns #t
if an iterator can be advanced from the back.
iter-finished?
Returns #t
if an iterator has no more items to produce.
iter-next!
Advances an iterator.
iter-next-back!
Advances the back of a double-ended iterator.
iter?
Returns #t
if its argument is an iterator.
iterable?
Returns #t
if its argument can be iterated.
J
K
keys
Iterates over the keys of a table.
keys-eqv?
Returns #t
if all of its arguments would occupy the same table entry when used as keys.
L
len
Returns the number of items in a collection.
let
Binds a local variable.
let-class
Defines a class and binds it to a local variable.
let-fn
Defines a function and binds it to a local variable.
let-macro
Defines a local macro.
let-mixin
Defines a mixin and binds it to a local variable.
lines
Iterates over lines in a string.
load
Evaluates the contents of a file.
load-str
Parses and evaluates a string.
log
Logarithm.
loop
An endless loop.
lowercase
Converts a string to lowercase.
M
macro
Accesses a global macro.
macro-no-op
Suppresses macro expansion.
macro=
Assigns a new global macro to a symbol.
map
Calls a function for each of another iterator's items.
map!
Maps a function over a deque in-place.
map-syntax
Maps a function over a collection, preserving syntax information.
match
Attempt to match a value against several patterns.
matches?
Returns #t
if a value matches a pattern.
max
Maximum.
max-args
Returns a function's maximum argument count.
met
Defines a method.
met-name
Shorthand for a method call.
met-name-abbrv
The abbreviation for met-name
.
min
Minimum.
min-args
Returns a function's minimum argument count.
mixin
Defines a mixin.
mixin
Applies mixins to a class definition.
mixin?
Returns #t
if a class is a mixin.
mul!
Performs in-place multiplication.
N
name
Defines the name of a class.
nan?
Returns #t
if its argument is a NaN.
nat-int?
Returns #t
if its argument is a natural integer (>= 0).
neg!
Negates a number, in place.
neg-int?
Returns #t
if its argument is a negative integer (< 0).
nil?
Returns #t
if its argument is #n
.
no-op
Discards any number of arguments and returns #n
.
not
Converts its argument to a boolean and negates it.
nth
Returns an iterator's n
th item.
nth-back
Returns a double-ended iterator's n
th-from-last item.
num?
Returns #t
if its argument is a number.
O
obj-kill!
Permanently deactivates an object.
obj-killed?
Returns #t
if an object has been killed.
obj?
Returns #t
if its argument is an object.
odd?
Returns #t
if its argument is odd.
once
Iterates over zero or more arguments.
once-with
Returns an iterator which lazily calls a function.
or
Performs a lazy Boolean OR.
ord
Numeric or lexicographic ordering.
P
pad
Adds padding characters to the end of a string.
pad-end
Adds padding characters to the end of a string.
pad-start
Adds padding characters to the beginning of a string.
parse
Incrementally parses values from a string.
parse-1
Parses exactly one value from a string.
parse-all
Parses zero or more values from a string.
pop!
Removes the deque's last element, and returns it.
pop-start!
Removes the deque's first element, and returns it.
pos-int?
Returns #t
if its argument is a positive integer (> 0).
position
Searches within a deque.
pow
Exponentiation.
pr
Prints to the standard output stream.
pretty-eprn
Pretty-prints to the standard error stream.
pretty-prn
Pretty-prints to the standard output stream.
pretty-str
Converts GameLisp syntax into a string with appropriate whitespace.
pretty-unparse
Losslessly converts GameLisp data into a string with appropriate whitespace.
prn
Prints to the standard output stream, followed by a newline.
prop
Defines a property.
push!
Appends one or more elements to the end of a deque.
push-start!
Prepends one or more elements to the beginning of a deque.
Q
R
rand
Generates a random number.
rand-pick
Randomly selects one of its arguments.
rand-reseed
Restarts the random number generator from a fixed seed.
rand-weighted
Randomly selects one item from a group, with unequal probability.
rchunks
Iterates over non-overlapping sub-arrays, in reverse order.
rchunks-exact
Iterates over non-overlapping sub-arrays with an exact size, in reverse order.
rdata?
Returns #t
if its argument is Rust data.
rem!
Performs in-place remainder.
rem-euclid
Euclidean remainder.
rem-euclid!
Performs in-place Euclidean remainder.
remove!
Removes an item from a collection, and returns it.
repeat
Returns an iterator which infinitely yields its arguments.
repeat-with
Returns an iterator which repeatedly calls a function.
replace
Performs text substitution.
representable-sym-str?
Returns #t
if its argument would be a valid, representable symbol.
require
Evaluates the contents of a file, if it hasn't been seen before.
restart-block
Jumps to the start of an enclosing block.
retain!
Filters a deque in-place.
return
Returns from a function call.
rev
Reverses an iterator.
rev!
Reverses a deque in-place.
rfind
Returns the first of an iterator's items which match a predicate, searching backwards.
rfn?
Returns #t
if its argument is a Rust function.
rfold
Passes all of an iterator's items to an accumulator function in reverse order.
rn
Iterates over a numeric range.
rni
Iterates over an inclusive numeric range.
round
Round-to-nearest.
rposition
Searches backwards within a deque.
S
same-any?
Returns #t
if its first argument has the same identity as any other argument.
same?
Returns #t
if all of its arguments share the same identity.
seek
Moves closer to a target value.
seek!
Moves a number closer to a target number, in place.
shrink!
Reduces a deque's size.
sign
Sign.
sin
Sine, in radians.
skip
Skips a fixed number of leading items from another iterator.
skip-while
Skips leading items which match a predicate.
sleep
Sleeps the current thread for the given number of seconds.
smoothstep
Smoothly interpolates between 0.0
and 1.0
.
sort
Returns a sorted copy of a deque.
sort!
Sorts a deque in-place.
splay
Passes all of an iterator's items as function arguments.
splay-abbrv
The abbreviation for splay
.
splice
Splices a form into its parent form.
split
Iterates over sub-strings.
sqrt
Square root.
stack-trace
Returns a string describing the current call-stack.
starts-with?
Tests whether one deque is the prefix of another.
state
Defines a class state.
state*
Defines a class state which is enabled by default.
step-by
Skips over another iterator's items by the given interval.
str
Constructs a string.
str?
Returns #t
if its argument is a string.
swap!
Exchange values stored in two different places.
swap-remove!
Swaps an element with the deque's last element, then removes it and returns it.
swap-remove-start!
Swaps an element with the deque's first element, then removes it and returns it.
sym
Constructs a symbol.
sym?
Returns #t
if its argument is a symbol.
T
tab
Constructs a table.
tab?
Returns #t
if its argument is a table.
take
Limits another iterator to a fixed number of items.
take-while
Limits another iterator using a predicate.
tan
Tangent, in radians.
template-str
Constructs a string.
template-str-abbrv
The abbreviation for template-str
.
time
Generates a high-precision timestamp.
todo
Triggers an error with a "not yet implemented" message.
trim
Trims leading and trailing characters from a string.
trim-end
Trims trailing characters from a string.
trim-start
Trims leading characters from a string.
trunc
Returns the integer part of a float, as a float.
try
Captures errors with a brief error message.
try-verbose
Captures errors with a verbose error message.
type-of
Returns the primitive type of its argument as a symbol.
U
unix-time
Returns the number of seconds elapsed since the UNIX epoch, as a string.
unless
Evaluates its body when a condition is false.
unparse
Losslessly converts GameLisp data into a string.
unquote
Evaluate a quasi-quoted form.
unquote-abbrv
The abbreviation for unquote
.
until
Loops as long as a condition is false.
uppercase
Converts a string to uppercase.
V
valid-sym-char?
Returns #t
if its argument is a valid symbol character.
valid-sym-str?
Returns #t
if its argument would be a valid symbol.
values
Iterates over the values of a table.
W
when
Evaluates its body when a condition is true.
when-let
Evaluates some forms when a value matches a pattern.
while
Loops as long as a condition is true.
whitespace?
Returns #t
if the given character or string is whitespace.
windows
Iterates over overlapping sub-arrays.
with-global
Mutates a global variable for the duration of a dynamic scope.
wrap
Wraps another method in the same class.
wrap-prop
Wraps another property in the same class.