Skip to main content

Чиста функція

Коротко: Чиста функція (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)
Протилежність"Брудна" функція з побічними ефектами

В одній фразі:

Чиста функція - це функція, яка не впливає на зовнішній світ і завжди веде себе однаково за однакового вводу.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.