С банальной казалось бы задачей борюсь, прошу помочь.
Есть файл там три строки
1 0 0
0 1 0
0 0 1
Нужно его 1) прочитать 2) распарсить (я еще делаю trim каждой строки) и 3) собственно сохранить в вектор, например результат должен быть таким:
[1 0 0] [0 1 0] [0 0 1]
Вот пока дошел до такого кода:
(defn read-matrix-file
[file]
(with-open [rdr (clojure.java.io/reader file)]
(doseq [line (line-seq rdr)]
(let [result (conj [] (filter #(not= % \space) (trim line)))]
(println result))
)))
Печатает такой результат:
[(1 0 0)]
[(0 1 0)]
[(0 0 1)]
Как видите я просто вставил
println что бы видеть что получилось, в конечном результате он не нужен.
Проблема в том, что (как мне кажется) я использую
doseq, а он не возвращает результат. Хотя некоторые результат и сохраняется в форме
let, но как его вытащить.
И в том, что тут
line-seq ленивая.
Как все-таки построить и вернуть вектор (или список) из функции?