Crazy Layered Memory
Jump to navigation
Jump to search
Crazy Layered Memory (a.k.a. clm) is a data structure that uses layers and cells to store data.
Layers
Each layer contains any number of layers and cells, as well as one index-cell and a active-cell.
The index-cell is stored at index -1 of its layer and contains the index that is currently accessed at this layer.
The active-cell is stored at index -2 of its layer and stores, whether this layer is the active layer (if not, functions affect the layer below this one)
Cells
are located inside of layers and contain the actual data
Functions
Function | Description |
---|---|
insertLayer | inserts a new layer after the current element |
insertCell | inserts a new cell after the current element |
delete | deletes the element referenced by the index-cell |
next | changes the index-cell by 1 (if index is greater than or equal to the length of the layer it loops around to -1) |
previous | changes the index-cell by -1 (if index is less than -1 it loops around to the last elemnt of the layer) |
down | if the current element is a layer, enter that layer |
up | exits current layer if possible |
length | returns the length of the current layer (excluding index- and marker-cell) |
Usage in esolangs
Currently, clm is only used by one esolang, clml, it is previously categorized in Category:Clm-based, but that category was deleted because it only contains one esolang.