Itertools для PHP
Внимание! Библиотеку я модифицировал, описанные ограничения уже не соответствуют действительности!
В прошлом, программируя на «Пайтоне» я не раз восторгался модулем itertools и тем как «Пайтон» легко позволяет обращаться с генераторами — есть несколько способов, хорошее разнообразие.
В ПХП недавно генераторы тоже появились, в версии 5.5 есть ключевое слово yield, позволяющее их создавать. Вчера у меня появилась мысль познакомиться с ними поближе и я решил переписать библиотеку itertools на PHP. В интернете я уже встречал несколько таких попыток, но ни одна из этих реализаций не использовала генераторы.
Пример использования ниже (для запуска примера и работы библиотеки требуется ПХП 5.6 и выше):
require 'itertools.php';
use function itertools\islice, itertools\cycle, itertools\iter;
foreach (islice(cycle(iter("ABC")), 10) as $el) {
echo $el;
}От оригинальной библиотеки несколько отличий.
Если не заброшу библиотеку, то, возможно,
Комментарии 19
Не хочу показаться евгешей, но вы не объясните в двух словах зачем нужны генераторы?
Сколько не читал документации так и не понял зачем они нужны, исключительно как синтаксический сахар?
Евгений, в целом куда удобнее просто читать не спотыкаясь о необычные конструкции в тексте, а не разбираться в принципе. Это ведь как с орфографическими ошибками — как правило они не мешают пониманию текста, но отвлекают от содержания.
Это ваш блог и, конечно, вам решать как писать посты, тем более, что они полезны независимо от способа написания, но
Я просто сопротивляюсь бардаку и вкладываю свою лепту в наведении порядка. Почитайте доперестоечные журналы («Науку и жизнь», например), посмотрите как там иностранные бренды написаны.
А названия функция писать
А всё что связано с производством — на китайском, очевидно.