1. Is there a reason you start with `(1) and then pop? Why not just initialize lis to nil?
2. Here's a slightly more idiomatic implementation (also more efficient, because it avoids deconstructing and reconstructing lis on every iteration):
(def l (start end) (accum acc (for i start (<= i end) ++.i acc.i)))
arc> (help accum) arc> (help for)