Как называется частично примененная карта? - PullRequest
0 голосов
/ 13 декабря 2018

В функциональном программировании наиболее распространенным шаблонам, как правило, дают имена, которые помогают их дифференцировать.

Я пытаюсь найти, как называется тип функции, которую я бы описал как частично примененную карту ..

Пример на Python:

from functools import partial
seq_len = partial(map, len)
seq_len(['alpha', 'beta', 'charlie'])

Я понимаю, что они также могут быть описаны как функции, которые принимают последовательности в качестве входных данных.

Некоторые функции, которые я определил как интересные предметыиз таких частичных приложений:

  • карта
  • уменьшить
  • фильтр

Подробнее:

  • Python использует имя «итератор» для ссылки на объекты, которые реализуют протокол итератора.Но в функциях itertools, которые принимают последовательности и возвращают последовательности, их также называют «итераторами» (https://docs.python.org/3.7/library/itertools.html).
  • JavaScript использует идентичное определение для итератора (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators).
  • Rust использует термин «потребляющий»)адаптеры "для методов, которые потребляют итератор, и" адаптеры итераторов "для методов, которые преобразуют входной итератор в другой итератор на выходе.

1 Ответ

0 голосов
/ 14 декабря 2018

Термин частично примененная карта подразумевает, что функция map применяется частично.Это сбивает с толку.

Основной принцип, который вы ищете, это карри .Функция map в вашем примере обычно принимает два параметра в Python.Если вы карри map(fn, list) произведете map'(fn), а затем примените map'(fn) к len, вы получите новую функцию map_len(), а затем сможете применить map_len к списку соответствующего типа.

Вы можете искать термины в функциональном программировании, такие как curry, compose и apply.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...