Currying, або що спільного між програмуванням і McDonald’s

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

А ви знали, що McDonald’s використовує каррінг (currying), коли клієнт робить замовлення, не виходячи з автомобіля?

Не те щоб власники McDonald’s готуються до співбесіди з програмування, але ж готуємось ми!

Тому поїхали: Каррінг (currying) — один з ключових принципів функціонального програмування, що дозволяє розбивати функцію з кількома аргументами на ланцюжок функцій з одним аргументом кожна.

Звучить складно, але насправді аналогія з Drive-thru в McDonald’s допоможе розібратися.

Уявіть, що ви під’їжджаєте до McDonald’s на автомобілі:

  1. На першому віконці ви робите замовлення: аргумент функції — ваш вибір.
  2. На другому віконці ви оплачуєте своє замовлення: аргумент — тип оплати: готівка чи картка.
  3. На третьому віконці ви отримуєте своє замовлення: остання функція виконується, аргумент — ви забираєте замовлення, або ви передумали і спитали, чи можемо отримати замовлення всередині ресторану (Авжеж, трохи дивна поведінка. Однак, у Маку вам ще морозиво за це дадуть😄).

makeOrder("Бургер")("Карта")("Drive-thru");

Оце і є той самий каррінг: кожен етап (функція) отримує свій аргумент і повертає нову функцію, яка очікує новий аргумент. В програмуванні це дозволяє створювати більш гнучкі та перевикористовувані функції.


Наприклад, маючи функцію makeOrder("Бургер")("Карта"), ми можемо створити нову функцію orderBurger = makeOrder("Бургер"), яка автоматично замовляє Бургер, повертає нову функцію, яка очікує вид оплати, як аргумент: orderBurger("Карта").

const orderBurger = makeOrder("Бургер");
const payWithCard = orderBurger("Карта");
payWithCard("Drive-thru");

Функціональне програмування з каррінгом допомагає нам розбивати складні завдання на простіші кроки.

Порівняйте зі звичайною функцією, коли ви підходите до стійки замовлення, одразу замовляєте, оплачуєте і отримуєте своє замовлення одним махом:

makeOrder("Бургер", "Карта", "Drive-thru");

Напишіть у коментарях, чи все зрозуміло!

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

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

Zoom випустить фотореалістичних аватарів, які замінять людей на нарадах

Відеосервіс Zoom анонсує технологію цифрових двійників, які самостійно відвідуватимуть робочі зустрічі. Про це пише TechCrunch.…

10.03.2026

Meta купує Moltbook: соціальну мережу для агентів та ботів

IT-гігант Meta (материнська компанія Facebook) офіційно оголосив про придбання Moltbook — вірусної соціальної мережі, яка…

10.03.2026

Китайський агент штучного інтелекту почав таємно майнити криптовалюту

Експериментальний агент штучного інтелекту ROME, якого створили дослідники, пов'язані з китайською компанією Alibaba, продемонстрував неочікувану…

10.03.2026

Заробляли на DDoS-атаках: у Польщі викрито групу школярів-хакерів, наймолодшому 12 років

Центральне бюро боротьби з кіберзлочинністю Польщі (CBZC) провело масштабну операцію, результатом якої стало викриття групи…

10.03.2026

Microsoft випустила Copilot Cowork — мультимодальний інструмент для запуску агентів

Microsoft оголосила про початок інтеграції технологій Anthropic у свої сервіси, представивши новий інструмент Copilot Cowork,…

10.03.2026

Anthropic презентує новий інструмент перевірки пул-реквестів Code Review

Компанія Anthropic оголосила про доступність у Claude Code бета-версії нового інструменту Code Review. Він розробленій…

10.03.2026