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)
|