[[Documentation]]
//[[Documentation]]

*Built-in Types

The currently supported built-in types are integers,
floating point numbers, and strings.

Some other data types (e.g., arrays) are currently supported by
Some other data types (e.g., arrays) are supported by
library API.

**Numbers

Integer arithmetics and floating point number arithmetics are available.
Some features, for example bit-shift operator or cosine function,
are not yet implemented.
Integer arithmetics and floating-point number arithmetics are available.
//Some features, for example bit-shift operator or cosine function,
//are not yet implemented.
In LMNtal, all numbers are unary (i.e., one-argument) atoms.

Atoms are treated as numbers only if
they are unary (i.e., one-argument) atoms.
***Syntax by examples

***Syntax

 X = -2, p(345)
 X = 2.0, p(-3.14e-10)

***Operations
Currently, the following operations are available:

The following operations are provided by built-in rules.  For example, +(3,5,X) (or X=3+5) will be reduced to 8(X) (or X=8). 

 int(+Float,-Int)           - cast
 float(+Int,-Float)         - cast
 '+'(+Int,+Int,-Int)        - integer operation,  as well as: - * / mod
 '+.'(+Float,+Float,-Float) - floating operation, as well as: -. *. /.
 '+'(+Int,+Int,-Int)        - integer operation,  as well as: -, *, /, mod
 '+.'(+Float,+Float,-Float) - floating operation, as well as: -., *., /.

**Strings

Strings (such as "abc") are unary atom names and
can be distinguished from symbols (such as 'abc' or just abc).

Wtring literals are treated as strings
Strings (such as "abc") are unary atom names that
are distinguished from ordinary symbols (such as 'abc' or just abc).
String literals are treated as strings
only if they are unary;
otherwise, they are treated as symbols.
otherwise, they are treated as ordinary symbols.

***Syntax
***Syntax by examples

 X = "abc", p("abc\\de\"\nf\
 X = "abc"
 p("abc\\de\"\nf\
 g")
 X = "abc", p([:abc\de"
 p([:abc\de"
 fg:])

The former argument to p is in C-like format
and the latter is in 'multiline-quoted format',
The argument in the second example is in C-like format
and the argument in the third example is in 'multiline-quoted format',
expressing the same string.
Note that
the literal [::] expresses an empty string ("").
The literal [::] expresses an empty string ("").

***Operations

Operations on strings are supported by the library API
(string module).
(str module).


Front page List of pages Search Recent changes Backup   Help   RSS of recent changes