-
Notifications
You must be signed in to change notification settings - Fork 131
Closed
Labels
Exercise solutionSolutions to textbook exercisesSolutions to textbook exercises
Description
// Fibonacci
// The first function receives n as an argument
// It applies the fib function recursively, passing n as an argument, as well as the initial arguments (k = 1, fib1 = 1, fib2 = 1)
(n => (fib => fib(fib, n, 2, 1, 1))
// The fib function is then defined as ft, with parameters n, k, fib1, and fib2
// Establish the base cases: n === 1 or n === 2
((ft, n, k, fib1, fib2) => n === 1
? 1
: n === 2
? 1
:
// Iterate until k equals n. Notice k starts at 2, and gets incremented every iteration
k === n
// When k reaches n, return the accumulated fib2
? fib2
// Otherwise, accumulate the sum as the new fib2
: ft(ft, n, k + 1, fib2, fib1 + fib2)));
// Is even
function f(x) {
return ((is_even, is_odd) => is_even(is_even, is_odd, x))
((is_ev, is_od, n) => n === 0 ? true : is_od(is_ev, is_od, n - 1),
(is_ev, is_od, n) => n === 0 ? false : is_ev(is_ev, is_od, n - 1));
}
Metadata
Metadata
Assignees
Labels
Exercise solutionSolutions to textbook exercisesSolutions to textbook exercises