После чтения файла clojure построчно, как извлечь определенную строку из определенной строки? - PullRequest
0 голосов
/ 25 июня 2018

Я новичок в clojure.У меня возникают проблемы, связанные с тем, как печатать определенную строку после удаления специальных символов и построчно читать файл clojure.
У меня есть файл с именем example.clj, который выглядит следующим образом:

(defn patient 
"Some string"

(measures 
patient/symptom-fever
patient/symptom-cold
.
.
.
.
patient/symptom-bp))

Из приведенного выше файла я удалил все специальные символы и прочитал файл построчно с приведенным ниже кодом clojure.

(defn loadcljfile []
  (def newstring(clojure.string/replace (slurp "C:/Users/Desktop/example.clj") #"[\[/.(:)\]-]" " "))
  (with-open [rdr (reader newstring)]
  (doseq [line (line-seq rdr)]
   (println line))))
  (loadcljfile)

Теперь не понимаю, как напечатать пациента , т.е. мойимя defn и все меры .

Кто-нибудь может мне помочь?

Спасибо

1 Ответ

0 голосов
/ 25 июня 2018

при определении вещей с именами внутри функции гораздо безопаснее и проще использовать let, чем def.def определяет его для всего пространства имен (обычно для всего файла), и пусть дает что-то имя только до его закрытия).

В этом случае имеет смысл дать Clojure прочитать выражение и включитьэто в структуру данных для вас.Вы можете сделать это с помощью функции load-file, если ваш файл является функцией, которую вы хотите запустить, или использовать tools.reader, если вы просто хотите, чтобы она была в структуре данных.

, если вы идете в load-fileподход, вы можете распечатать его с помощью функции clojure.repl / source, и если вы идете по пути tools.reader, вы можете просто напечатать его.

...