| CONCEPT |
| alists |
| |
| LAST UPDATE |
| 2 Mar 92 21:10:21 GMT |
| |
| AUTHOR |
| From: amylaar@mcshh.hanse.de (Joern Rennecke) |
| Subject: general documentation on alists |
| |
| DESCRIPTION |
| Alists provide a fast and convenient way to access data |
| associatively. |
| |
| Alists are implemented as arrays of arrays, the first being |
| the array holding the keys, the others arrays holding |
| associated data. An empty alist is an array of empty arrays. |
| |
| Note that the the dimensions of the arrays are used the other |
| way than in lisp to allow for faster searching. |
| |
| Keys have to be of type integer, string or object. Types can |
| be mixed. |
| |
| The search functions return an undefined value when another |
| list is given in place of a presorted key list. |
| |
| A list with non-numeric keys retrieved by restore_object() has |
| to be readjusted by using order_alist(), especially after |
| reboot. |
| |
| Deleting an entry can safely be done with exclude_array as |
| long as all associated data lists are treated like the key |
| array; index finding for such purposes can be done with assoc. |
| |
| Typical applications: holding administrary information about |
| wizards, list of visitors in a pub, list of customers having |
| some sort of credit, information remembered about items etc. |
| |
| NOTE |
| The main use of alists, storing data associatively, is now |
| better performed by mappings. Alists are needed for more |
| extreme situations only. |
| |
| Alists are available only if the driver is compiled with |
| alist support. In that case, __ALISTS__ is defined. |
| |
| HISTORY |
| LDMud 3.3 made alists an optional efun. |
| |
| SEE ALSO |
| mappings(LPC), order_alist(E), insert_alist(E), assoc(E), |
| transpose_array(E) |