Wie benutzt man in Clojure sorted-map-by?

8

Ich kann die Dokumentation überhaupt nicht verstehen.

Ich möchte eine sortierte Karte "xxx", die die Karte nach dem Wert sortiert. Wie mache ich das?

Danke.

    
unj2 06.10.2009, 23:22
quelle

2 Antworten

16

Eine andere Möglichkeit besteht darin, die Werte der Originalkarte innerhalb der Vergleichsfunktion zu vergleichen.

%Vor%     
Chad Braun-Duin 15.07.2010 03:33
quelle
4

Sie verwenden sorted-map-by, indem Sie einen Vergleich angeben, gefolgt von den Schlüssel-Wert-Paaren. Der Komparator ist eine Funktion, die zwei Tasten annimmt und -1, 0 oder 1 zurückgibt, je nachdem, ob der erste Schlüssel kleiner, gleich oder größer als der zweite Schlüssel ist.

Beispiel:

%Vor%

Da die Vergleichsfunktion nur Schlüssel als Argumente verwendet, können Sie dies nicht verwenden, um nach den Werten zu sortieren.

Es gibt keine Möglichkeit, eine sortierte Map zu erstellen, in der die Map nach den Werten sortiert ist. Wenn dies der Fall wäre, wäre es nicht möglich, einen Eintrag nach Schlüssel zu finden, da Sie den Auftrag nicht verwenden können, um festzustellen, wo sich der Eintrag befindet (da der Befehl nicht vom Schlüssel abhängt).

    
sepp2k 06.10.2009 23:49
quelle

Tags und Links