Ich habe eine Funktion, die liest ein Token aus einem Eingabestream, der aufgerufen wird (get-next-Indikator Strom Indikator) und gibt es zurück. Ich versuche es zu benutzen, um eine Karte zu erstellen.Clojure Funktion Lesen von Stream-Sperren
Aber wenn ich es laufe, stürzt es ab. Wenn ich eine der Get-Next-Indikator-Funktion entferne, funktioniert es. Versuchen beide Funktionen den Stream gleichzeitig zu lesen ist dies der Fall. Was verursacht das?
(defn decode-map [ stream ]
(loop [result {}]
(let [c (char (.read stream))]
(if (= c \e)
result
(recur (assoc result (get-next-indicator stream (int c))
(get-next-indicator stream (int c))))))))
Was meinst du mit "verstopft"? Gibt es eine Fehlermeldung? – Svante
keine Fehlermeldung repl loop just sperrt noting wird gedruckt. Wenn ich den zweiten Aufruf von get-next-indicator durch say "e" ersetze, erzeugt es die Map wie erwartet, aber wenn es wie mein Snippet aufgerufen wird. nichts passiert. Kein Fehler, keine Ausnahme. –
Hat Get-Next-Indikator irgendwelche Nebenwirkungen? Posten Sie den Code auch dafür. – Kai