:let allows you to define named values ββin the same sense as the special let form allows you to do this:
(for [i (range 10) :let [x (* i 2)]] x) ;;=> (0 2 4 6 8 10 12 14 16 18)
is equivalent to:
(for [i (range 10)] (let [x (* i 2)] x)) ;;=> (0 2 4 6 8 10 12 14 16 18)
unless used in combination with :when (or :while ):
(for [i (range 10) :let [x (* i 2)] :when (> i 5)] x) ;;=> (12 14 16 18) (for [i (range 10)] (let [x (* i 2)] (when (> i 5) x))) ;;=> (nil nil nil nil nil nil 12 14 16 18)
source share