Приложение Curring И Частичных Функций В Php

Что такое каррирование и частичное применение функции можно прочитать здесь статья .

Собственно вот реализация на PHP: github.com/Эльфет/Функциональный Пример использования частичного применения:

  
  
  
  
  
   

use Functional\Partial; function foo($a, $b, $c) { return "foo<$a, $b, $c>\n"; } $p = Partial::apply('foo', 1, 2); echo $p(3); // foo<1, 2, 3>

Вы также можете использовать именованные параметры:

$p = Partial::applyNamed('foo', array('a' => 1, 'c' => 3)); echo $p(2); // foo<1, 2, 3>

Вы можете установить значения по умолчанию:

$p = Partial::apply(function ($a, $b, $c = 'c') { return "function()<$a-$b-$c>\n"; }, 1); echo $p(2); // function()<1-2-c>

Или добавьте параметры позже:

class Boo { public function woo($a, $b, $c) { return "Boo::woo<$a, $b, $c>\n"; } } $p = Partial::apply(array($boo, 'woo')); $p->applyArgs(1, 2); $p->applyNamedArgs(array('b' => 3)); echo $p(); // Boo::woo<1, 3, 2>

Пример каррирования:

use Functional\Curry; function foo($a, $b, $c) { return "foo<$a, $b, $c>\n"; } $c = new Curry('foo'); echo $c->invoke(1)->invoke(2)->invoke(3); // foo<1, 2, 3>

Или используйте сокращенный синтаксис:

echo $c[1][2][3]; // foo<1, 2, 3>

Теги: #php #curry #частичное применение #php
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.