Я только что начал работу с Clojure
по адресу Heroku
, в первом чтении this introduction. Теперь, в фазе грязных рук, я столкнулся с этой проблемой, обрабатывая базу данных в цикле.Зацикливание на базе данных с Clojure
Это работает:
(for
[s (db/query (env :database-url)
["select * from My_List"])]
; here one can do something with s, for example:
; print out (:field s)
)
Но это не достаточно, чтобы обновить переменные внутри цикла, как я хочу. Чтение по теме, я понимаю, что Clojure имеет свой собственный способ обработки переменных. Мне нужно использовать шаблон цикла.
Вот что я пробовал:
(loop [a 0 b 1
s (db/query (env :database-url)
["select * from My_List"])]
; here I want to do something with s, for example
; print out (:field s)
; and do the following ... but it does not work!
(if (> (:otherField s) 5)
(:otherField s)
(recur (+ a (:otherField s)) b s))
)
Поскольку я пробовал различные способы сделать, прежде чем писать этот пост, я знаю, что код выше работ за то, что я делаю что-то неправильно в отношении базы данных, за исключением.
Итак, вот мой вопрос: Что мне нужно изменить, чтобы оно работало?