}; $dummyFunc = function ($v) { return $v; }; if (!isset($argv[1])) { return; } switch ($argv[1]) { case "funcsum": test(function () use($add1, $sum) { echo "func result: " . array_reduce(array_map($add1, range(0, ITER_MAX)), $sum) . PHP_EOL; }); break; case "lazysum": test(function () use($add1, $sum) { echo "lazy result: " . Lazy::fromRange(0, ITER_MAX)->map($add1)->reduce($sum) . PHP_EOL; }); break; case "itersum": test(function () use($add1, $sum, $dummyFunc) { $result = 0; $tmp = null; for ($i = 0; $i <= ITER_MAX; $i++) { // $result += $i + 1; $result += $add1($i); $tmp = $dummyFunc($tmp); } echo "iter result: " . $result . PHP_EOL; }); break; case "lazyfile":
//*/ ///* echo Lazy::fromRange(0, 9)->map(null, [1, 2, 3], [4, 5, 6]); //*/ ///* echo Lazy::fromRange(0, 10)->map(function ($v) { return $v + 1; })->filter(function ($v) { return $v & 1; }); echo Lazy::fromRange(0, 10)->map(function ($v) { return $v + 1; })->filter(function ($k) { return $k === 0; }, ARRAY_FILTER_USE_KEY); echo Lazy::fromRange(0, 10)->map(function ($v) { return $v + 1; })->filter(function ($v, $k) { return $k === 0 && $v === 1; }, ARRAY_FILTER_USE_BOTH); //*/ ///* $input = ["x0" => 0, "x1" => 1, "x2" => 2, "x3" => 3, "x4" => 4, "x5" => 5]; echo Lazy::fromArray($input)->map(function ($v) { return $v + 1; })->filter(function ($v) { return $v & 1; }); echo Lazy::fromArray($input)->map(function ($v) { return $v + 1; })->filter(function ($v) {