2016-05-01 5 views
2

Ich suche nach einem Wert mit dem Schlüssel, der eine Liste ist.Wie kann ich den Wert eines Schlüssels in einer HashMap abrufen, die eine Liste in Clojure ist?

Grundsätzlich zählen String-Paare die Häufigkeit der Anzahl der Elemente (grüne Eier) in einem Text erscheint. Jedoch, wenn ich versuche, den Schlüssel mit etwas wie (string-pairs '(green eggs)) abrufen, bekomme ich immer nil zurück, obwohl die Karte zeigt, gibt es einen Wert von 1 für diesen Schlüssel.

ich nur mich gefragt, wo ich falsch werde ich alles :(

Vielen Dank für Ihre Zeit

Antwort

2

Wenn Sie println Werte anzuzeigen verwenden versucht haben, Strings und Symbole gleich aussehen, obwohl sie sind nicht gleich.

Wenn Sie debuggen, verwenden Sie prn welche Werte eindeutig zeigt, oder pr-str verwenden, um die Zeichenfolge pr oder prn verwenden würde, in Ihrem println Anruf zu generieren.

Dies sollte Ihnen das richtige Ergebnis geben (Vektoren und Listen sind in Clojure gleich, wenn ihre Inhalte gleich sind).

(string-pairs ["green" "eggs"]) 
+0

OMG, vielen Dank! : D Ich werde so schnell wie möglich akzeptieren. –

+1

ein anderes Argument für die Verwendung von prn: '{": a 0 "": b 1 "}' ist eine gültige Hash-Map, aber println sieht aus wie etwas völlig anderes (aber auch gültig). Das ist nicht nur ein theoretisches Problem, Strings, die Leerzeichen enthalten, tauchen zumindest regelmäßig in Hash-Maps in meinem Code auf. – noisesmith

Verwandte Themen