Extra Built-In Functions
Some special built-in functions have been added to LPMOO to facilitate the
extra datatypes (floats and tables) as well as to improve the performance of
the simulation.
Functions for Manipulating Floating Point Values
float
tofloat(value)
- Converts (almost) any MOO value into a floating point number.
float
floor(float)
- Rounds the argument towards negative infinity and returns the result.
float
ceil(float)
- Rounds the argument towards positive infinity and returns the result.
list
frexp(float)
- Splits the argument (x) into a fraction f and an
integer exponent n, such that either f == 0.0, or
0.5 <= | f | < 1.0 and f * 2 ** n == x.
{f, n} is returned. If the argument equals
0.0, both f and n will be zero.
float
ldexp(float, num)
- Adds an integer to the exponent of a float; float * 2 **
num is returned. This has the inverse effect of
frexp()
.
list
modf(float)
- Splits the argument into a fraction f and an integer part
n, such that | f | < 1.0, and
f + n == x. {f, n} is
returned. Note that n is returned as a float, and may not be
representable as an integer.
Functions for Manipulating Table Values
table
tablemap(list, list)
- Creates and returns a new table built by associating each of the values
from the first argument with the corresponding elements of the second
argument. An error will result if the lists are not of the same size.
table
tableinsert(table, key,
value)
- Returns a new table with {key ~ value}
inserted (or altered.)
table
tabledelete(table, key)
- Returns a new table with the element associated with key
removed.
list
tablekeys(table)
- Returns all of the keys present in the given table as a list.
list
tablevalues(table)
- Returns all of the values present in the given table as a list, in the
same ordering that
tablekeys()
returns the keys for the same
table.
num
table_bound(table, key)
- Returns 1 if and only if key is present the given table.
Miscellaneous Functions
string
toliteral(value[, usequotes])
- Returns a string representation for value, including recursive
list or table elements. If usequotes is present and is false,
string values will not be surrounded by quotation marks, and special
characters within the string will not be escaped.
list
fromliteral(string)
- Returns {1, value} where value is the
MOO value represented by the string argument. If the argument is malformed,
{0, reason} is returned instead. This function assumes
that strings have been properly escaped and are surrounded by quotation
marks.
Modifications to Existing Functions
Some functions which already existed in version 1.7.7 of the LambdaMOO server
have been enhanced to work with floats and tables.
tostr()
- Float arguments are converted into a simple string representation. Table
arguments are converted into the string "{table}".
tonum()
- A float argument is rounded to the nearest integer. If the float value is
so large that it cannot be represented as an integer, E_RANGE
will be generated.
toobj()
- A float argument is rounded to the nearest integer, and then converted
into an object value. The same range restriction applies as for
tonum()
.
abs()
- If a float argument is passed, the absolute value (also as a float) is
returned.
sqrt()
- If a float argument is passed, the floating point square root is
returned.
length()
- If a table argument is passed, the number of elements in the table is
returned.
rob@ccs.neu.edu