VERALTET SYNOPSIS mixed *map_array(mixed *arr, string fun, string|object ob, mixed extra); mixed *map_array(mixed *arr, closure cl, mixed extra); BESCHREIBUNG Liefert ein Array, das die Eintraege von <arr> enthaelt, die mit ob->fun(element, extra) bzw. mit der Closure <cl> verarbeitet wurden. Die Funktion <fun> wird in <ob> fuer jedes Element von <arr> mit diesem Element als erstes Argument aufgerufen. Der Aufruf wird mit dem <extra> Argument erweitert, falls angegeben. <ob> kann ein Objekt oder ein String (Objektname) sein. Ist <ob> nicht angegeben oder weder ein String noch ein Objekt, wird standardmaessig this_object() verwendet. Grundsaetzlich steckt in map_array() die Funktion: foreach (index) arr[index] = ob->fun(arr[index],extra); Der Rueckgabewert von ob->fun(arr[index],extra) ersetzt das bestehende Element von <arr>. Ist <arr> kein Array, wird 0 zurueck geliefert. Das <extra> Argument ist optional und darf keine geschuetzten Referenzen wie &(i[0]) enthalten. BEISPIEL string ask_for_uid(object obj) { return getuid(obj); } void func() { string *names; names = map_array(users(), "ask_for_uid", this_object()); /* gleichwertig, aber etwas kleiner und schneller dies: */ names = map_array(users(), #'getuid ); ... } Dies erzeugt ein Array, das alle UIDs der momentan vorhandenen Benutzer enthaelt. AENDERUNGEN Seit LDMud 3.2.6 abgeloest durch map(). Seit LDMud 3.2.9 nur noch verfuegbar, wenn der Treiber mit USE_DEPRECATED kompiliert wurde. SIEHE AUCH filter(E), filter_objects(E), assoc(E), intersect_alist(E), insert_alist(E), map(E), map_objects(E), member(E), order_alist(E), sort_array(E), unique_array(E)