(progn
(defun collatz (n)
(if (evenp n)
(/ n 2)
(+ (* 3 n) 1)))
(defun collatz-list (ls)
(if (not (listp ls))
(setq ls (cons ls ())))
(let* ((temp (collatz (car ls))))
(if (= 1 temp)
(cons temp ls)
(collatz-list (cons temp ls)))))
(collatz-list 3))
KHByb2duCiAgKGRlZnVuIGNvbGxhdHogKG4pCiAgICAoaWYgKGV2ZW5wIG4pCiAgICAgICAgKC8gbiAyKQogICAgICAoKyAoKiAzIG4pIDEpKSkKCiAgKGRlZnVuIGNvbGxhdHotbGlzdCAobHMpCiAgICAoaWYgKG5vdCAobGlzdHAgbHMpKQogICAgICAgIChzZXRxIGxzIChjb25zIGxzICgpKSkpCiAgICAobGV0KiAoKHRlbXAgKGNvbGxhdHogKGNhciBscykpKSkKICAgICAgKGlmICg9IDEgdGVtcCkKICAgICAgICAgIChjb25zIHRlbXAgbHMpCiAgICAgICAgKGNvbGxhdHotbGlzdCAoY29ucyB0ZW1wIGxzKSkpKSkKCiAgKGNvbGxhdHotbGlzdCAzKSk=