SSAG3CMQWYZJYGLWQT2BPXH46KW7YJZMWPZ2424PWCR6LLAEVVEAC
Y252WSYR7C5GNY7T5F24CMOFKSMKT2JX542CBP7FPN4EAI7RMZ2QC
([rope move] (move-rope rope move 0 rope)) ([rope move knot prev-rope]
([rope move] (move-rope rope move 0 rope))
([rope move knot prev-rope]
([rope move] (move-rope rope move 0)) ([rope move knot]
([rope move] (move-rope rope move 0))
([rope move knot]
(let [head (nth prev-rope knot)
(let [head (nth rope knot)
new-head (if (= knot 0) (update-position head move) (nth rope knot))
new-head (if (= knot 0) (update-position head move) head)
(recur (assoc rope knot new-head (inc knot) new-tail) move (inc knot) rope)))
(recur (assoc rope knot new-head (inc knot) new-tail) move (inc knot))))