Карринг

Карринг

В компьютерных науках, каррирование или карринг (англ. currying), введенное М. Шейнфинкелем и Г. Фреге, является преобразованием функции от пары аргументов в функцию, берущую свои аргументы по одному. Это преобразование получило свое название в честь Х. Карри.

Содержание

Определение

Для функции h типа h : (A × B) → C оператор каррирования Λ выполняет преобразование Λ(h) : A → (B → C). Таким образом, Λ(h) берет аргумент типа A и возвращает функцию типа B → C. С интуитивной точки зрения, каррирование функции позволяет фиксировать ее некоторый аргумент, возвращая функцию от остальных аргументов. Таким образом, Λ представляет собой функцию типа Λ : (A × B → C) → (A → (B → C)).

Декаррирование вводится как обратное преобразование.

В другом смысле, преобразование ε, противоположное каррированию, восстанавливает каррированный аргумент. Для функции k типа k : A → (B → C) оператор ε типа ε: (U → V) × U → V для произвольных a: A, U = A, V = B → C выполняет преобразование ε[k,a]: B → C. Остается положить k = Λ(h), и для ε: (A →( B → C)) × A → (B → C) записываем ε[Λ(h),a]: B → C и ε[k,a] = ε[Λ(h),a], что устанавливает связь между каррированой и некаррированной записью функции[1].

На практике каррирование позволяет рассматривать функцию, которая получила один из аргументов, но не все. Оператор каррирования встроен в некоторые языки программирования, что позволяет многоместные функции приводить к каррированному представлению. Примером служат языки Haskell. Все языки, поддерживающие замыкание, позволяют записывать каррированные функции.

Примечания

  1. Wolfengagen, V.E. Combinatory logic in programming. Computations with objects through examples and exercises. -- 2-nd ed. -- M.: "Center JurInfoR" Ltd., 2003. -- x+337 с. ISBN 5-89158-101-9.

См. также

  • Переопределение функции

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР
Синонимы:

Полезное


Смотреть что такое "Карринг" в других словарях:

  • карринг — сущ., кол во синонимов: 1 • каррирование (1) Словарь синонимов ASIS. В.Н. Тришин. 2013 …   Словарь синонимов

  • Лямбда-исчисление — (λ исчисление)  формальная система, разработанная американским математиком Алонзо Чёрчем, для формализации и анализа понятия вычислимости. λ исчисление может рассматриваться как семейство прототипных языков программирования. Их основная… …   Википедия

  • Λ-исчисление — Лямбда исчисление (λ исчисление, лямбда исчисление) формальная система, разработанная американским математиком Алонзо Чёрчем, для формализации и анализа понятия вычислимости. λ исчисление может рассматриваться как семейство прототипных языков… …   Википедия

  • Ламбда-исчисление — Лямбда исчисление (λ исчисление, лямбда исчисление) формальная система, разработанная американским математиком Алонзо Чёрчем, для формализации и анализа понятия вычислимости. λ исчисление может рассматриваться как семейство прототипных языков… …   Википедия

  • Лямбда исчисление — (λ исчисление, лямбда исчисление) формальная система, разработанная американским математиком Алонзо Чёрчем, для формализации и анализа понятия вычислимости. λ исчисление может рассматриваться как семейство прототипных языков программирования. Их… …   Википедия

  • Замыкание (программирование) — Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей. У этого термина …   Википедия

  • Магнолия (фильм) — У этого термина существуют и другие значения, см. Магнолия (значения). Магнолия Magnolia Жанр драма Режиссёр …   Википедия

  • СОВЕСТЬ — способность человека, критически оценивая свои поступки, мысли, желания, осознавать и переживать свое несоответствие должному как собственное несовершенство. С культурно исторической т.зр. идея и понятие С. складываются в процессе осмысления… …   Философская энциклопедия

  • Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му …   Википедия

  • Функциональное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»