function move_tower(size, from, to, extra) {
if (size === 0) {
return true;
} else {
move_tower(size - 1, from, extra, to);
alert("move from " + from + " to " + to);
return move_tower(size-1, extra, to, from);
}
}
move_tower(3, "A", "B", "C");
function move_tower(size, from, to, extra) {
if (size === 0) {
;
} else {
move_tower(size - 1, from, extra, to);
alert("move from " + from + " to " + to);
move_tower(size - 1, extra, to, from);
}
}
move_tower(3, "A", "B", "C");
function highest_denom(kinds_of_coins) {
switch (kinds_of_coins) {
case 1: return 5; break;
case 2: return 10; break;
case 3: return 20; break;
case 4: return 50; break;
default: return 0;
}
}
function cc(amount, kinds_of_coins) {
if ... /* base cases */
else {
return cc(amount, kinds_of_coins - 1)
+
cc(amount
-
highest_denom(kinds_of_coins),
kinds_of_coins)
}
}
function cc(amount, kinds_of_coins) {
if (amount === 0) {
return 1;
} else if (amount < 0 ||
kinds_of_coins === 0) {
return 0;
} else {
return cc(amount, kinds_of_coins - 1)
+
cc(amount
-
highest_denom(kinds_of_coins),
kinds_of_coins)
}
}
function power(b, e) {
return (e === 0) ? 1 : b * power(b, e-1);
}
function power(b, e) {
function power_iter(b, count, product) {
return (count === 0)
? product
: power_iter(b, count - 1,
b * product);
}
return power_iter(b, e, 1);
}
function fast_power(b, e) {
if (e === 0) {
return 1;
} else if (is_even(e)) {
return fast_power(b * b, e / 2);
} else {
return b * fast_power(b, e - 1);
}
}
function f(x, y) {
var a = 1 + x * y;
var b = 1 - y;
return x * square(a) + y * b + a * b;
}
f(2, 3);
function f(x) {
var y = x + 1;
return y * y;
}
f(5); alert("something"); f(7);
function f(g, x) {
return g(x);
}
f( function(y) {
return y + 1;
},
7
);
function power(b, e) {
function power_iter(b, count, product) {
return (count === 0)
? product
: power_iter(b, count - 1,
b * product);
}
return power_iter(b, e, 1);
}
function power(b, e) {
function power_iter(count, product) {
return (count === 0)
? product
: power_iter(b, count - 1,
b * product);
}
return power_iter(e, 1);
}
function f(g, x) {
return g(g(x));
}
f( function(y) {
return y + 1;
},
7
);
var z = 1;
function f(g) {
return g(z);
}
f( function(y) {
return y + z;
}
);
function f(g) {
var z = 4;
return g(z);
}
f( function(y) {
var z = 2;
return y + z;
}
);
function f(x) {
return function(y) {
return x + y;
};
}
var g = f(4);
g(6);
function f(x) {
return function(y) {
return x + y;
};
}
( f(4) )(6);
function f(x) {
return function(y) {
return x + y;
};
}
var g1 = f(1);
var g2 = f(2);
g1(10);
g2(20);
function sum_numbers(a, b) {
return (a > b) ? 0 : a + sum_numbers(a + 1, b);
}
function sum_cubes(a, b) {
return (a > b)
? 1
: cube(a) + sum_cubes(a + 1, b);
}
function cube(x) {
return x * x * x;
}
function frac_sum(a, b) {
return (a > b) ? 0
: 1 / (a * (a + 2))
+
frac_sum(a + 4, b);
}
frac_sum(1,30) * 8;
function sum(a, b) {
return (a > b) ? 0
: "compute value with a"
+
f("next value from a", b);
}
function sum(term, a, next, b) {
return (a > b) ? 0
: term(a)
+
sum(term, next(a), next, b);
}
function sum(term, a, next, b) {
return (a > b) ? 0
: term(a)
+
sum(term, next(a), next, b);
}
function sum_cubes(a, b) {
return sum(cube, a, function(x) { return x + 1; }, b);
}
function sum(term, a, next, b) {
return (a > b) ? 0
: term(a)
+
sum(term, next(a), next, b);
}
function sum_integers(a, b) {
return sum(function(x) { return x; },
a,
function(x) { return x + 1; },
b);
}
function frac_sum(a, b) {
return sum(function(x) { 1 / (x * (x + 2)),
a,
function(x) { return x + 4; },
b);
}
frac_sum(1,30) * 8;
/
#