Що спільного між Pure Function та приготуванням кави в автоматі?

Сергій Єрьомін

(Ага, я пам’ятаю, що вам дуже сподобалася аналогія з Макдональдсом)

Отже, чиста функція (Pure Function) — це функція, яка завжди дає один і той самий результат для тих самих вхідних даних і не має побічних ефектів. Це означає, що чиста функція відповідає двом основним вимогам:

  • Детермінізм;
  • Відсутність побічних ефектів.

Детермінізм, побічні ефекти (Side Effects)? А що воно взагалі таке?

Детермінізм — це коли ти викликаєш функцію з однаковими аргументами, а вона завжди повертає один і той самий результат.

Побічні ефекти — це дії, які відбуваються під час виконання функції і впливають на стан поза цією функцією, або залежать від зовнішнього стану: тобто, зміна глобальних змінних, модифікація об’єктів, які передаються у функцію, робота з файлами, мережеві запити тощо.

Дочитали? Це добре. Продовжуємо далі!

А тепер уявіть два способи приготування кави: за допомогою кавомашини і вручну.

Кава через автомат (Чиста функція):

  • Та сама кава, якщо нажати на ту саму кнопку. Той самий смак і порція того самого розміру;
  • Сьогодні, вчора, завтра — все без змін;
  • Автомат не змінює нічого навколо себе, на кухні чисто. Щось побурухтіло всередині і все.

Кава вручну (Не чиста функція):

  • Оооо! Інша справа! Ви можете поспішати, або ні. Можете робити каву зранку, або вдень. Вчора дві ложки цукру додали, а сьогодні п’єте без — тут залежить від вашого настрою;
  • Тобто, два рази поспіль ви можете отримати різну каву, навіть якщо використовуєте ті самі інгредієнти;
  • Побічні ефекти? Під час приготування, ви можете залишити неприбраним посуд на кухні, використовувати різні інструменти і змінювати їхній стан.

Напишіть, будь ласка, чи сподобалися вам мої приклади з кавою!

І тримайте корисну статтю на тему.

Цей текст з особистого блогу, опублікований з дозволу автора.

Останні статті

Українська мова лідирує за темпами розповсюдження в LLM-моделях

За останній рік кількість LLM-моделей з відкритим кодом, які працюють з українською мовою, зросла на…

17.12.2025

OpenAI обмежила безкоштовну генерацію коду в режимі Thinking

OpenAI відмовилася від автоперемикача вибору моделей, прибравши з нього режим Thinking для безкоштовних користувачів та…

17.12.2025

Користування GitHub Actions стане платним з 1 березня 2026 року

Платформа спільної розробки та хостингу коду GitHub оголосила про запровадження плати за користування GitHub Actions…

17.12.2025

Ціни на оперативну пам’ять за останній квартал зросли на 252%. Експерти пояснюють причини

Наприкінці осені ціни на оперативну пам'ять практично вибухнули, про що свідчить оновлений огляд ComputerBase на…

16.12.2025

Розробник Claude Code просить не зловживати вайб-кодингом

Творець одного з найпопулярніших інструментів для кодування Claude Code не вважає вайб-кодинг універсальним рішенням для…

16.12.2025

Google припиняє відстежувати активність у даркнеті

Google оголосила про припинення роботи сервісу Dark Web Reports, який відстежував появу особистих даних користувачів…

16.12.2025