Если я правильно понимаю документацию, я могу написать следующее:
(let [a 5 b 10]
(print a)
(print b))
Это работает, как и ожидалось, и выводит 5 и 10. Я использую этот механизм в этом фрагменте кода (полный код здесь если вам нужна дополнительная информация):
(defn create! [fields]
(let [username (user/unique-user (:author fields))
competition-id (:id (competition/latest))]
(if-not (exists? (:ld_uid fields))
(insert entries (values {
:ld_uid (:ld_uid fields)
:title (:title fields)
:description (:description fields)
:type (:type fields)
:user_id (:id username)
:competition_id competition-id})))
(for [link (:links fields)]
(source/create! (:id (by-ld-uid (:ld_uid fields))) (:url link) (:title link)))))
проблема в том, что выражение for
не выполняется. Операторы сами по себе работают, как и ожидалось, но в приведенном выше коде выражение insert
выполняется, а for
нет. Я что-то контролирую? У меня нет идей, что здесь происходит :(
for
ленивое. Обернитеdorun
или замените наdoseq
. - person A. Webb   schedule 27.01.2014