Итак, у меня есть следующая функция, которая хорошо работает при вызове из REPL:
(defn plot-data-files
"Produces a file with x-axis values on 1st column and y-axis values on the
2nd column"
[]
(let [filename (user-input "file to which you want to write plot output")
x-values file-data-days
y-values (get-dndtf)
file-writer (new java.io.FileWriter filename)]
(if (= (first y-values) za-not-found)
(println za-not-found)
(for [index (range (count x-values))]
(binding [*out* file-writer]
(prn (Double/parseDouble (str (nth x-values index)))
(Double/parseDouble (str (nth y-values index)))))))))
Однако, когда я пытаюсь использовать Leinigen для создания файла JAR, функция больше не записывает в файлы.Поэтому я попытался вызвать -main
из REPL, и, конечно же, функция также не записывает в файлы, даже если это происходит при ее вызове.Итак, я попытался определить другую функцию:
(defn call-plot-function
"Basically calls the plot function, plot-data-files"
[] (plot-data-files))
и, конечно же, она работает.Я пытаюсь вызвать -main
снова, но на этот раз вызов call-plot-function
вместо plot-data-files
напрямую:
(defn -main [& args]
(get-all-file-data)
(while (not (= \n (first (user-input "whether you want to output more plot
files"))))
(call-plot-function)))
И снова, plot-data-files
магическим образом не записывает вывод файла при вызове -main
.Что мне здесь делать?