Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Чиста функція». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Чиста функція (pure function)** - це функція, яка **завжди повертає той самий результат за однакових вхідних даних** і **не має побічних ефектів** (не змінює зовнішні змінні, DOM, файли, мережу тощо). **Ключове:** чиста функція не впливає на зовнішній світ і завжди поводиться однаково за однакового вводу.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення**Коротко:** **Чиста функція (pure function)** - це функція, яка **завжди повертає той самий результат за однакових вхідних даних** і **не має побічних ефектів** (не змінює зовнішні змінні, DOM, файли, мережу тощо). --- ### Детальне пояснення Чиста функція - фундаментальне поняття функціонального програмування. Вона **передбачувана**, **тестована** і **не залежить від зовнішнього стану**. **Дві ключові ознаки:** 1. **Детермінованість** - один і той самий ввід → завжди один і той самий вивід. 2. **Відсутність побічних ефектів** - функція нічого не змінює за своїми межами. --- ### Приклад чистої функції ```javascript function add(a, b) { return a + b; } ``` Завжди повертає однаковий результат і нічого не змінює в зовнішньому світі. --- ### Приклад нечистої функції ```javascript let counter = 0; function increase() { counter++; // побічний ефект - змінює зовнішню змінну return counter; } ``` Ця функція **нечиста**, тому що її результат залежить від зовнішнього стану (`counter`) і вона його змінює. --- ### Інші приклади нечистих функцій - Читання/запис у файл або базу даних - Зміна DOM - Виклик `alert()` чи `console.log()` - Використання випадкових чисел (`Math.random()`) - Використання поточного часу (`Date.now()`) --- ### Навіщо потрібні чисті функції Легко тестувати - результат залежить лише від аргументів. Легко кешувати (memoization). Безпечні для паралельного виконання. Підвищують передбачуваність і читабельність коду. --- ### Підсумок | Властивість | Чиста функція | |---|---| | Повертає однаковий результат | Так | | Залежить від зовнішніх змінних | Ні | | Змінює зовнішній стан | Ні | | Приклад | `Math.max(1, 5)` | | Протилежність | "Брудна" функція з побічними ефектами | --- **В одній фразі:** > Чиста функція - це функція, яка **не впливає на зовнішній світ** > і **завжди веде себе однаково за однакового вводу**.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.