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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Новою СЕО Sigma Software стане Катерина Тулузова

Sigma Software, що є підрозділом Sigma Software Group, заявила про зміну генерального директора. Компанію очолить…

06.06.2025

У Windows 11 з’явиться новий текстовий редактор Edit, легший за Блокнот. Він працюватиме з командного рядка

Microsoft готує додати у Windows 11 новий «легкий» текстовий редактор Edit. Він важить всього 230…

06.06.2025

OpenAI готує до релізу модель o3-pro. Вона найпотужніша для кодування, але коштує $200

Компанія OpenAI у найближчі тижні планує випустити оновлення для тарифного плану ChatGPT Pro, доступ до…

06.06.2025

СЕО знають, що через штучний інтелект будуть звільнення, але всім брешуть — софтверні інвестори

Керівники компаній часто вводять в оману, розповідаючи, що штучний інтелект лише підвищить продуктивність і не…

06.06.2025

США оголосили нагороду в $10 млн за інформацію про українського хакера, який втік у Росію

Уряд США пропонує до $10 мільйонів за інформацію про місцезнаходження розробника шкідливого програмного забезпечення RedLine…

06.06.2025

Google запевняє, що оновлена модель Gemini Pro 2.5 стала краще працювати з кодом

Google оголосила про оновлення своєї LLM-моделі Gemini 2.5 Pro, яка, за твердженням компанії, стала краще…

06.06.2025