Towers of Hanoi: Difference between revisions
Content added Content deleted
Line 844: | Line 844: | ||
=={{header|Clojure}}== |
=={{header|Clojure}}== |
||
===Side-Effecting Solution=== |
|||
<lang lisp>(defn towers-of-hanoi [n from to via] |
<lang lisp>(defn towers-of-hanoi [n from to via] |
||
(when (pos? n) |
(when (pos? n) |
||
Line 849: | Line 850: | ||
(printf "Move from %s to %s\n" from to) |
(printf "Move from %s to %s\n" from to) |
||
(recur (dec n) via to from)))</lang> |
(recur (dec n) via to from)))</lang> |
||
===Lazy Solution=== |
|||
<lang lisp>(defn towers-of-hanoi [n from to via] |
|||
(when (pos? n) |
|||
(lazy-cat (towers-of-hanoi (dec n) from via to) |
|||
(cons [from '-> to] |
|||
(towers-of-hanoi (dec n) via to from)))))</lang> |
|||
=={{header|COBOL}}== |
=={{header|COBOL}}== |