Skip to content

Commit

Permalink
fixes #986
Browse files Browse the repository at this point in the history
  • Loading branch information
martin-henz committed Jul 1, 2024
1 parent 7b7e2a5 commit 58789cf
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions xml/chapter4/section1/subsection6.xml
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,45 @@ function f(x) {
</SNIPPET>
</LI>
</OL>
<SOLUTION>
Part (a)
<SNIPPET>
<JAVASCRIPT>
// solution provided by GitHub user LucasGdosR

// The Fibonacci 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)));
</JAVASCRIPT>
</SNIPPET>
Part (b)
<SNIPPET>
<JAVASCRIPT>
// solution provided by GitHub user LucasGdosR

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));
}
</JAVASCRIPT>
</SNIPPET>
</SOLUTION>
</EXERCISE>
</JAVASCRIPT>
</SPLIT>
Expand Down

0 comments on commit 58789cf

Please sign in to comment.