| SYNOPSIS |
| mixed unique_array(object *obj, string|closure fun) |
| mixed unique_array(object *obj, string|closure fun, mixed skip) |
| mixed unique_array(object *obj, string|closure fun, mixed extra... |
| , mixed skip) |
| |
| BESCHREIBUNG |
| Gruppiert alle Objekte aus <*obj>, fuer die die Funktion <fun> |
| den gleichen Wert liefert. Wenn <*obj> etwas anderes als Objekte |
| enthaelt, werden diese ignoriert. |
| |
| Ist die Funktion mit Namen angegeben, wird sie in jedem Objekt |
| in <*obj> einmal aufgerufen. Wurden <extra> Argumente |
| gegeben, werden diese an die Funktion bei jedem Aufruf als |
| Parameter uebergeben. |
| |
| Ist die Funktion als Closure angegeben, wird sie fuer jedes Objekt |
| in <*obj> einmal aufgerufen, wobei das Objekt als erstes Argument |
| uebergeben wird, gefolgt von etwaiigen <extra> Argumenten. |
| |
| Wird ein Argument <skip> angegeben (bei Verwendung von <extra> |
| Argumenten muss dies geschehen), und entspricht <skip> dem |
| Resultat von <separator> fuer ein Element aus <*obj>, so wird |
| dieses Element nicht in das Resultat von unique_array() |
| uebernommen. |
| |
| Das Resultat von unique_array() hat die Form: |
| |
| ({ ({same1:1, same1:2, ... same1:n}), |
| ({same2:1, same2:2, ... same2:n}), |
| ({samem:1, samem:2, ... samem:n}) }) |
| |
| BEISPIELE |
| Um ein Array von Arrays zu erhalten, das alle Benutzer, nach Level |
| gruppiert, enthaelt: |
| |
| mixed *arr; |
| arr = unique_array(users(), "_query_level", -1); |
| |
| Goetter haben einen Level von -1. Sie werden nicht in arr aufgenommen, |
| weil <skip> == -1. |
| |
| SIEHE AUCH |
| filter(E), map(E) |