... left" alt="Искусство
Вдохновившись статьей ... Еще раз о
и частичном ...
![Искусство каррирования](http://habrastorage.org/storage2/67d/d69/682/67dd69682cc071a8e81e012abe7d901b.jpg)
Вдохновившись статьей Еще раз о каррировании и частичном применении в PHP, в голову пришла реализация частичного применения метода, именно метода, а не функции.
Каррируем!
... Искусство
"/>В ... br/>
Эмуляция
и частичного ...
![Искусство каррирования Искусство каррирования](http://habrastorage.org/storage2/67d/d69/682/67dd69682cc071a8e81e012abe7d901b.jpg)
В недавней статье предложена реализация
каррирования (currying) и
частичного применения (partial function application) на PHP. Ее фундаментальным недостатком является то, что результатом каррирования является не функция, а объект. Он уже не может быть передан в качестве callback-параметра, а для подстановки аргументов приходится использовать специальный синтаксис. В настоящем тексте предлагается новая, прозрачная реализация этих конструкций для PHP 5.3 и выше.
Термин currying
происходит от фамилии американского математика Haskell Curry. Второе значение слова currying
— выделка дубленой кожи.
Понятия каррирования и частичного применения происходят из функциональных языков программирования, в рамках которых они находят широчайшее применение. Современный PHP проявляет тенденцию к заимствованию некоторых элементов функционального программирования (функции как объекты первого класса, анонимные функции и замыкания), так что обсуждаемые концепции уже не являются для него совершенно инородными.
Эмуляция каррирования и частичного применения на PHP — это один из примеров того, что Макконнелл в «Совершенном коде» (гл. 4.3) называет программированием
с использованием языка, а не
на языке.
Читать дальше →