Library Reference

Note: the LMNtal API is under development and its specification is subject to change.

In the following, arguments with the '+' sign are those consumed upon reaction with the library atoms, while arguments with the '-' sign are those generated by the library API. The slash (/) notation is used to indicate the arity of atoms.

Library nlmem

The library nlmem (nonlinear membrane) contains an implementation of the following rule schemes that use aggregates:

R=nlmem.copy(X,a), {$p[X|*Z]} :-
   R=copied(X1,X2),
   {$p[X1|*Z1]}, {$p[X2|*Z2]},
   a(*Z1,*Z2,*Z).
nlmem.kill(X,b), {$p[X|*Z]} :- b(*Z).

They are rule schemes in the sense that a and b are metasymbols to be replaced by any symbolic names.

nlmem.copy(+{P},+a,-R)
An abbreviated form of (nlmem.copy(R0,a,R), {+R0,P}). Creates two copies of the cell {+R0,P} with all its free links renamed, and connects R and the two fresh copies of R0 using a ternary atom with the name a. Furthermore, for each free link L of the original cell {+R0, P} (except R0 that will disappear together with the '+'), nlmem.copy connects the two fresh copies of L and the original L via the ternary atom a.
nlmem.copy(+{P},-R)
Same as {nlmem.copy({P},copied,R).
nlmem.kill(+{P},+b)
An abbreviated form of (nlmem.kill(R0,b), {+R0,P}). Connects each free link L of the cell {+R0, P} (except R0 that will disappear together with the '+') to the unary atom b.
nlmem.kill(+{P})
Same as nlmem.kill({P},killed).

Library io (SLIM)

Input/output in SLIM is done through ports. An operation on a port will return a new port to be used for future operations on the port.

io.stdin(-RetPort)
Returns a standard input port.
io.stdout(-RetPort)
Returns a standard output port.
io.read_line(+Port,-RetPort,-Str)
Read a single line Str from the input port Port and returns a new port RetPort.
io.read_char(+Port,-RetPort,-C)
Read a character C from the input port Port and returns a new port RetPort.
io.close_port(+Port,-RetPort)
Close Port and returns it as RetPort. Further operations on the port will cause an error.
io.free_port(+Port)
Frees Port.
io.print_char(+Port,+C,-RetPort)
Print a character C to Port and return a new port RetPort.
io.print(+Port,+Str,-RetPort)
Print a string Str to Port and return a new port RetPort.
io.print_newline(+Port,-RetPort)
Print a newline to Port and return a new port RetPort.
io.print_line(+Port,+Str,-RetPort)
Print a string Str and a newline to Port and return a new port RetPort.
io.print_mem(+Port,+M,-RetPort)
Print the content of the membrane M to Port and return a new port RetPort.
io.open_output_string(-SRetPort)
Creates a new string output port SRetPort.
io.open_input_string(+Str,-SRetPort)
Creates a new string input port SRetPort consisting of the characters in the string Str.
io.output_string(+Port,-RetPort,-Str)
Dumps the content of the string port Port and returns it as RetPort.

Library io (LMNtal Java)

io.popup(+Str)
Displays the string Str in a pop-up window.
io.input
Reads an atom name typed into a pop-up window. The result is a new nullary atom with the given name.
io.input(+Atom)
Displays the name of the unary Atom on a pop-up window and reads an atom name typed into the window. The result is a two-atom molecule with done/1 and a unary atom with the given name.
io.input(+Atom,-X)
Dislays the name of the unary Atom on a pop-up window and reads an atom name typed into the window. The result is a two-atom radical with done/2 and a unary atom with the givne name, of the form newAtom(Y), done(Y,X).
io.inputInteger(+Atom,-X)
Same as above, except that the result is Int(X), where Int is an integer (which is a unary atom in LMNtal) that has been typed in.
io.use
Enables the use of standard input (System.in) and standard output (System.out). The result consists of two molecules representing standard input and standard output.
io.readline(-Atom,-Res)
reads one line from standard input, connnecting to Atom a unary atom whose name is the input string (or an empty string if the string can't be read), and connects done/1 or nil/1 to Res, depending on whether the string could be read. To be used with io.use.
io.print(+Atom,-Res)
prints the name of the unary Atom (a string or a non-string atom) into standard output, and connects done/1 to Res. To be used witn io.use.

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