concepts/
efun/
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.

CAVEATS
	 A maximum array size of 1000 might prove to be to small.

SEE ALSO
	mappings(LPC), order_alist(E), insert_alist(E), assoc(E),
	transpose_array(E)