Ich schreibe mein erstes Clojure-Programm und möchte Zeilen von Stdin lesen.So lesen Sie Zeilen von stdin (* in *) in clojure
Wenn ich das versuchen:
(doall (map #(println %) (line-seq *in*)))
Ich erhalte diese Ausnahme:
Exception in thread "main" java.lang.ClassCastException: clojure.lang.LineNumberingPushbackReader cannot be cast to java.io.BufferedReader (test.clj:0)
Ich erhalte die gleichen Ergebnisse in der Version 1.0 und 1.1
So wie ich *in*
in eine umwandeln Seq kann ich über iterieren? Ich hätte gedacht, dass diese häufig genug ist, dass *in*
selbst wäre iterable, aber das funktioniert auch nicht - wenn ich versuche, es zu verwenden, um direkt die ich erhalten:
java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.LineNumberingPushbackReader (NO_SOURCE_FILE:0)
Auch gibt es Beispiele für tun allgemeine Datei Handhabung in clojure?
ersetzen (Karte # (println%) (line-Seq ..)) mit nur (map println (line-seq ..)) könnte nett sein – GabiMe