Page
Library
Module
Module type
Parameter
Class
Class type
Source
Lwd_table
SourceLwd_table
is an ordered collection with an impure interface. It is designed to be efficient in an interactive setting.
The interface mimics the one of a doubly-linked lists: from a node, called row, you can iterate backward and forward, insert and delete other nodes, and change the value it is bound to.
The sequence of nodes can be observed by map/reduce operations, that will be recomputed efficiently when sequence changes.
The type of tables
Insert and return a new row at the start of a table. It can be optionnally initialized to the value of set
.
Insert and return a new row at the end of a table. It can be optionnally initialized to the value of set
.
Insert and return a new row just before an existing row. It can be optionnally initialized to the value of set
.
If the input row is unbound (is_bound
returns false), the returned row is too.
Insert and return a new row just after an existing row. It can be optionnally initialized to the value of set
.
If the input row is unbound (is_bound
returns false), the returned row is too.
Returns the first row of a table, or None
if the table is empty
Returns the last row of a table, or None
if the table is empty
Returns the row next to another one, or None
if the input row is unbound or is the last row
Returns the row just before another one, or None
if the input row is unbound or is the first row
Get the value associated with a row, if any, or None
if the row is unbound
Set the value associated with a row, or do nothing if the row is unbound
Returns true
iff the row is bound in a table (it has not beem remove
d yet, the table has not been clear
ed)
Observe the content of a table by reducing it with a monoid
Observe the content of a table by mapping and reducing it