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)