blob: 390c56e72e5de82ce9ca525498ec2292573997aa [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
2 mixed unique_array(object *obj, string|closure fun)
3 mixed unique_array(object *obj, string|closure fun, mixed skip)
4 mixed unique_array(object *obj, string|closure fun, mixed extra...
5 , mixed skip)
6
7BESCHREIBUNG
8 Gruppiert alle Objekte aus <*obj>, fuer die die Funktion <fun>
9 den gleichen Wert liefert. Wenn <*obj> etwas anderes als Objekte
10 enthaelt, werden diese ignoriert.
11
12 Ist die Funktion mit Namen angegeben, wird sie in jedem Objekt
13 in <*obj> einmal aufgerufen. Wurden <extra> Argumente
14 gegeben, werden diese an die Funktion bei jedem Aufruf als
15 Parameter uebergeben.
16
17 Ist die Funktion als Closure angegeben, wird sie fuer jedes Objekt
18 in <*obj> einmal aufgerufen, wobei das Objekt als erstes Argument
19 uebergeben wird, gefolgt von etwaiigen <extra> Argumenten.
20
21 Wird ein Argument <skip> angegeben (bei Verwendung von <extra>
22 Argumenten muss dies geschehen), und entspricht <skip> dem
23 Resultat von <separator> fuer ein Element aus <*obj>, so wird
24 dieses Element nicht in das Resultat von unique_array()
25 uebernommen.
26
27 Das Resultat von unique_array() hat die Form:
28
29 ({ ({same1:1, same1:2, ... same1:n}),
30 ({same2:1, same2:2, ... same2:n}),
31 ({samem:1, samem:2, ... samem:n}) })
32
33BEISPIEL
34 Um ein Array von Arrays zu erhalten, das alle Benutzer, nach Level
35 gruppiert, enthaelt:
36
37 mixed *arr;
38 arr=unique_array(users(), "_query_level", -1);
39
40 Goetter haben einen Level von -1. Sie werden nicht in arr aufgenommen,
41 weil <skip> == -1.
42
43SIEHE AUCH
44 Arrays: filter(E), map(E)
45 Objektarrays: filter_objects(E), map_objects(E)
46 Mappings: filter(E), map(E), filter_indices(E), map_indices(E)
47