(defmacro each-reverse [identifier list & body]
(with-syms [$i $list]
~(let [,$list ,list]
(var ,$i (,dec (,length ,$list)))
(while (>= ,$i 0)
(def ,identifier (in ,$list ,$i))
,;body
(-- ,$i)))))(defmacro each-reverse [identifier list & body]
(with-syms [$i $list]
~(as-macro ,let [,$list ,list]
(var ,$i (,dec (,length ,$list)))
(while (,>= ,$i 0)
(def ,identifier (,in ,$list ,$i))
,;body
(as-macro ,-- ,$i)))))