day 2
you can find the description here and you can find the code here
for part one, it is a very straight forward simulation.
(defn step-part1 [x y cmd i]
(cond
(= cmd "forward") [(+ x i) y]
(= cmd "up") [x (- y i)]
:else [x (+ y i)]))
part two is very similar but we also need to keep track of the aim
(defn step-part2 [x y aim cmd i]
(cond
(= cmd "forward") [(+ x i) (- y (* aim i)) aim]
(= cmd "up") [x y (+ aim i)]
:else [x y (- aim i)]))