Computations are values. They may read from the memory, but do not modify it.
(text [C0: COMPUTATION]...[CN: COMPUTATION])
Returns a text value containing the text representation of C0…CN.
Examples: (text just a few strings),
(text (string just a single string)), (text There are (+ 3 1) lights!),
(text (text (text well...))).
Aliases: text.
(var {String})
Returns the value of the variable {String}, or a reference to it if
applicable. In cases where no text or string value is expected, using
{String} instead of (var {String}) will work as a shortcut.
Structure members can be accessed by using . in {String}. Collection
(list or set) elements can be similarly accessed by their index.
Examples: (var my_list), (var my_list.0), (var my_list.0.name).
Aliases: var, variable.
(string {String})
Returns a string value corresponding to {String}. This can be used
to disambiguate strings and variable names, as well as to create strings with
spaces.
Examples:
(string just a single string), (string var0_is_not_a_var)
Aliases: string.
(sequence {String})
Returns a [SEQUENCE] value corresponding to the sequence named {String}.
Said sequence can be defined at a later point.
Examples: (sequence the_cave), (sequence end_credits).
Aliases: seq, sequence.
{Structure Variable Name}.{Field Name}
(struct:field {String} [STRUCTURE])
Accesses the {String} field of the structure [STRUCTURE]. Using . to
access fields is recommended over the use of this operator when possible. The
returned value can act as a reference.
Examples: claude.health_points, (struct:field health_points jack),
(struct:field stamina (car (list:pop_left character_list)))
Aliases: struct:field, struct:get, struct:getfield,
struct:get_field.
(let
(
({V0: String} [C0: COMPUTATION])
...
({VN: String} [CN: COMPUTATION])
)
[result: COMPUTATION]
)
Defines a hierarchical level and local variables V0 … VN with values C0 … CN, and returns the value of result.
Examples:
Aliases:
(cast [TYPE] [COMPUTATION*])
Transforms [COMPUTATION*] into a value of type [TYPE]. Note that the variable
shorthand cannot be used for [COMPUTATION*]. The following type changes are
allowed:
[FLOAT] to [FLOAT], [INT], and [STRING].[INT] to [FLOAT], [INT], and [STRING].[BOOL] to [BOOL] and [STRING].[STRING] to [BOOL] (true and false), [FLOAT], [INT], and[STRING].Examples:
Aliases:
(rand [I0: INT] [IN: INT])
Returns a random number between I0 and IN (inclusive).
Examples:
Aliases:
(and [B0: BOOL] ... [BN: BOOL])
Standard conjunction (minimum of 2 arguments).
(or [B0: BOOL] ... [BN: BOOL])
Standard disjunction (minimum of 2 arguments).
(not [BOOL])
Standard negation.
(implies [B0: BOOL] [B1: BOOL])
Standard implication.
(one_in [B0: BOOL] ... [BN: BOOL])
true if, and only if, exactly one of the operands is true.
Examples:
Aliases:
All operands must be of the same type, which is also the type returned by the operation.
(+ [N0: NUMBER] ... [NN: NUMBER])
Standard addition (minimum of 2 arguments).
(- [N0: NUMBER] ... [NN: NUMBER])
Standard substraction (minimum of 2 arguments).
(* [N0: NUMBER] ... [NN: NUMBER])
Standard multiplication (minimum of 2 arguments).
(/ [N0: NUMBER] [N1: NUMBER])
Standard division. Note that a division on integers is indeed a integer division.
(^ [N0: NUMBER] [N1: NUMBER])
Standard exponentiation.
(% [I0: INT] [I1: INT])
Standard modulo operation.
(min [N0: NUMBER] ... [NN: NUMBER])
Lowest value among the operands.
(max [N0: NUMBER] ... [NN: NUMBER])
Highest value among the operands.
(clamp [N0: NUMBER] [N1: NUMBER] [N2: NUMBER])
Equivalent to (max N0 (min N1 N2)).
(abs [NUMBER])
Positive value of [NUMBER].
Examples:
Aliases:
(= [C0: COMPUTATION] ... [CN: COMPUTATION])
True if, and only if, all operands are equal.
(< [C0: COMPARABLE] [C1: COMPARABLE])
True if, and only if, C0 is strictly lower than C1.
(=< [C0: COMPARABLE] [C1: COMPARABLE])
True if, and only if, C0 is lower or equal to/than C1.
(> [C0: COMPARABLE] [C1: COMPARABLE])
True if, and only if, C0 is strictly higher than C1.
(>= [C0: COMPARABLE] [C1: COMPARABLE])
True if, and only if, C0 is higher or equal to/than C1.
Examples:
Aliases: