JavaScript: керування потоком та функції

Функції: оголошення, вирази, стрілки, замикання

📖 Теорія

Три способи оголошення функцій:

💡 Приклад коду
Вивід:

                            
📝 ЗАВДАННЯ (3)
1.
Завдання 1: Стрілкові функції
10 XP
Напиши три стрілкові функції:
1. double(n) — повертає n * 2
2. isEven(n) — повертає true якщо n парне
3. greet(name) — повертає 'Привіт, [name]!'
Виведи double(7), isEven(4), isEven(9), greet('Оля').
💡 Підказка: Для однорядкових функцій {} і return не потрібні
🔓 Розв'язок:
const double = n => n * 2;
const isEven = n => n % 2 === 0;
const greet = name => `Привіт, ${name}!`;
console.log(double(7));
console.log(isEven(4));
console.log(isEven(9));
console.log(greet('Оля'));
Вивід:

                                

2.
Завдання 2: Функції вищого порядку
20 XP
Напиши функцію applyTwice(fn, x) яка застосовує функцію fn до x двічі.
Виведи:
1. applyTwice(x => x * 2, 3) → 12
2. applyTwice(x => x + 10, 5) → 25
3. applyTwice(x => x ** 2, 2) → 16
💡 Підказка: applyTwice має викликати fn(fn(x))
🔓 Розв'язок:
const applyTwice = (fn, x) => fn(fn(x));
console.log(applyTwice(x => x * 2, 3));
console.log(applyTwice(x => x + 10, 5));
console.log(applyTwice(x => x ** 2, 2));
Вивід:

                                

3.
Завдання 3: Рекурсивний факторіал та замикання
30 XP
1. Напиши рекурсивну функцію factorial(n). Виведи factorial(0), factorial(5), factorial(7).
2. Напиши makeMultiplier(factor) що повертає функцію-множник. Виведи triple(9) та quadruple(6).
💡 Підказка: factorial: базовий випадок n <= 1 → 1. makeMultiplier повертає n => n * factor
🔓 Розв'язок:
function factorial(n) {
  if (n <= 1) return 1;
  return n * factorial(n - 1);
}
console.log(factorial(0));
console.log(factorial(5));
console.log(factorial(7));
const makeMultiplier = factor => n => n * factor;
const triple = makeMultiplier(3);
const quadruple = makeMultiplier(4);
console.log(triple(9));
console.log(quadruple(6));
Вивід: