no22 / sloth
simple lazy application iterator
dev-master
2013-05-04 07:36 UTC
Requires
- php: >=5.2
This package is not auto-updated.
Last update: 2025-04-26 17:18:02 UTC
README
Sloth is a simple lazy application iterator for PHP 5.2 or later.
Setup
require "Sloth/Autoload.php";
Create iterator object
$iter = Sloth::iter($array_or_iterator);
or
$iter = Sloth::iter($initialValue, $functionCallback);
Lazy map
function foo($n) { echo "foo called.\n"; return $n * $n; } $iter = Sloth::iter(array(1,2,3,4,5))->map('foo'); foreach ($iter as $e) { echo $e . "\n"; }
foo called. 1 foo called. 4 foo called. 9 foo called. 16 foo called. 25
Infinite sequense
for PHP 5.2
$even = Sloth::iter(0, Sloth::fn('$n + 2')); $evenLessThan10 = $even->takeWhile(Sloth::fn('$n < 10')); foreach ($evenLessThan10 as $e) { echo $e . "\n"; }
for PHP 5.3
$even = Sloth::iter(0, function($n){return $n + 2;}); $evenLessThan10 = $even->takeWhile(function($n){return $n < 10;}); foreach ($evenLessThan10 as $e) { echo $e . "\n"; }
License
Sloth is dual Licensed MIT and GPLv3. You may choose the license that fits best for your project.