This page presents all the computations that can be performed in Wyrd.
Computations may access the current memory, but, with one exception, do not
change it. The one exception is (new t). All computations return values.
The terms ‘value’ and ‘computation’ are interchangeable.
(const [BASE TYPE] {string})
Returns the [BASE TYPE] represented by {string}.
(cast [COMPUTATION] [BASE TYPE])
Converts [COMPUTATION] to [BASE TYPE], returns the result.
Note:
FLOAT to INT returns floor(v).BOOL to STRING yields either True or False.The following must be supported:
[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].
(if_else [BOOL] [C0 = COMPUTATION] [C1 = COMPUTATION])
Returns C0 if [BOOL] holds true, C1 otherwise. C0 and C1 both
have the same type.
(equals [C0 = COMPUTATION] [C1 = COMPUTATION])
Returns a BOOL, true if C0 and C1 hold the same value. C0 and C1
are both of the same type.
(divide [C0 = NUMBER] [C1 = NUMBER])
(minus [C0 = NUMBER] [C1 = NUMBER])
(plus [C0 = NUMBER] [C1 = NUMBER])
(power [C0 = NUMBER] [C1 = NUMBER])
(times [C0 = NUMBER] [C1 = NUMBER])
The operation returns a value of the same type as C0 and C1 (both C0 and
C1 are also of the same type). Thus, (divide C0 C1) is an integer division
(the remainder is discarded) if C0 and C1 are of type INT, and a standard
division if they are of type FLOAT.
(rand [C0 = INT] [C1 = INT])
Returns a random value between C0 and C1, inclusive. Raises a runtime error
if C0 > C1.
(less_than [C0 = COMPARABLE] [C1 = COMPARABLE])
Returns a [BOOL] indicating if C0 is strictly less than C1.
C0 and C1 are both of the same type.
(and [C0 = BOOL] [C1 = BOOL])
(not [C0 = BOOL])
(size [COLLECTION ADDRESS])
Returns the number of elements held by the collection at
[COLLECTION ADDRESS].
(address [COMPUTATION])
Returns an ADDRESS to the memory element at address [COMPUTATION]. Raises a
runtime error if [COMPUTATION] is not a memory element.
(relative_address [R0 = (COLLECTION|STRUCTURE) ADDRESS] [STRING])
Returns a REFERENCE to member [STRING] of R0.
(value_of [ADDRESS])
Returns the value held at the memory location [ADDRESS].
(new [TYPE])
Returns an [TYPE] ADDRESS to a newly allocated memory element of
type [TYPE].
(newline)
Returns a TEXT value corresponding to a newline.
(text [S0 = STRING] ... [SN = STRING])
Returns a single value [TEXT] representing the elements S0 … S1.
(add_text_effect ({string} [V0 = COMPUTATION] ... [VN = COMPUTATION]) [TEXT])
Returns a [TEXT] value of [TEXT] with the given effect enabled.
(get_last_user_choice)
Returns the number corresponding to the option last chosen by the user in a
(resolve_choices), or -1 if there is no such value.