Towers of Hanoi: Difference between revisions

Content added Content deleted
(Added FreeBASIC)
m (→‎{{header|JavaScript}}: Layout, type-signature comment)
Line 1,812: Line 1,812:


=={{header|JavaScript}}==
=={{header|JavaScript}}==

<lang javascript>function move(n, a, b, c) {
<lang javascript>function move(n, a, b, c) {
if (n > 0) {
if (n > 0) {
Line 1,825: Line 1,826:


<lang JavaScript>(function () {
<lang JavaScript>(function () {

// hanoi :: n -> s -> s -> s -> [[s, s]]
// hanoi :: Int -> String -> String -> String -> [[String, String]]
function hanoi(n, a, b, c) {
function hanoi(n, a, b, c) {
return n ? hanoi(n - 1, a, c, b).concat(
return n ? hanoi(n - 1, a, c, b)
[[a, b]]
.concat(
).concat(hanoi(n - 1, c, b, a)) : [];
[
[a, b]
}
]
)
return hanoi(3, 'left', 'right', 'mid')
.concat(hanoi(n - 1, c, b, a)) : [];
.map(function (d) {
}
return d[0] + ' -> ' + d[1];

});
return hanoi(3, 'left', 'right', 'mid')
.map(function (d) {
return d[0] + ' -> ' + d[1];
});
})();</lang>
})();</lang>