
map_objects
***********


BEMERKUNGEN
===========

   Werden Pfade angegeben, so wird versucht ein Objekt zu laden, falls
   dieses nicht existiert.


BEISPIELE
=========

      // ersetze alle Objekte durch ihre Namen
      arr=map_objects(inputarr, "name");

      // ersetze alle Objekte durch ihre Namen im Genitiv
      arr=map_objects(inputarr, "name", WESSEN);

      // AeQUIVALENZCODE (nicht empfohlen, nur zum Verstaendnis!):
      int i;
      object *ret; mixed *input;

      i=sizeof(input);
      ret=allocate(i);
      while(i--)
        ret[i]=input[i]->fun([extra1, extra2, ...]);
