Skip to content

Solution to Exercise 4.18 #986

@LucasGdosR

Description

@LucasGdosR
// 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

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions