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 enthaelt, die mit ob->fun(element, extra) bzw. mit der Closure verarbeitet wurden. Die Funktion wird in fuer jedes Element von mit diesem Element als erstes Argument aufgerufen. Der Aufruf wird mit dem Argument erweitert, falls angegeben. kann ein Objekt oder ein String (Objektname) sein. Ist 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 . Ist kein Array, wird 0 zurueck geliefert. Das 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)