Ось мій (в основному) відповідь на жаргон та код.
Розгляньте дані двома способами, потоком (значення, що виникають у часі, наприклад, події) або структурою (дані, які існують у певний момент часу, такі як список, вектор, масив тощо).
Існують певні операції, які ви хочете виконати над потоками чи структурами. Однією з таких операцій є картографування. Функція картографування може збільшити кожен елемент даних (якщо припустити, що це число) на 1, і ви можете сподіватися уявити, як це могло б застосуватись до потоку чи структури.
Функція відображення - це лише одна із класів функцій, яку іноді називають "скорочуючими функціями". Інша поширена функція зменшення - це фільтр, який видаляє значення, що відповідають предикату (наприклад, видалити всі рівні значення).
Перетворювачі дозволяють «обгортати» послідовність однієї або декількох скорочуючих функцій і виробляти «пакет» (який сам є функцією), який працює як на потоках, так і на структурах. Наприклад, ви можете "упакувати" послідовність функцій скорочення (наприклад, відфільтрувати парні числа, потім зіставити отримані числа, щоб збільшити їх на 1), а потім використати цей "перетворювач" пакета або на потік або структуру значень (або на обох) .
Тож у чому це особливе? Як правило, відновлювальні функції не можуть бути ефективно складені для роботи як на потоках, так і на структурах.
Тож користь для вас полягає в тому, що ви можете використовувати свої знання навколо цих функцій і застосовувати їх до більшої кількості випадків використання. Вартість вам полягає в тому, що вам доведеться навчитися додатковій техніці (тобто датчику), щоб дати вам додаткову потужність.