<?php include_once './fn.php'; echo "2 * [1, 2, 3, 4] == [2, 4, 6, 8]\n"; print_r(Fn::map(function ($x) { return 2 * $x; }, array(1, 2, 3, 4))); $sum = function () { $vals = func_get_args(); return Fn::foldl(function ($a, $b) { return $a + $b; }, 0, $vals); }; echo "Sum(1, 2, 3, 4, 5) => 15\n"; print_r($sum(1, 2, 3, 4, 5)); echo "\n"; echo "Zip(array(1, 2, 3), array(3, 2, 1), array(1, 2, 3)) == array((1, 3, 1), (2, 2, 2), (3, 1, 3))\n"; print_r(Fn::zip(array(1, 2, 3), array(3, 2, 1), array(1, 2, 3))); echo "\n"; $rdiv = function () { $vals = func_get_args(); return Fn::foldr(Fn::flip(function ($a, $b) { echo "{$a} / {$b} = " . $a / $b . "\n"; return $a / $b; }), 2, $vals); }; echo "RDiv(/ 2 array(8, 12, 24, 4)) => 8.0\n"; echo $rdiv(8, 12, 24, 4) . "\n\n"; echo "flip(\$divv)(1, 0) == 0\n"; $fdivv = Fn::flip(function ($x, $y) { return $x / $y;
<?php require_once 'Fn.php'; $r = Fn::foldl(function ($accumulated, $next) { return $accumulated - $next; }, 100, array(1, 2, 3)); var_dump($r);