Example #1
0
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;
});
echo $fdivv(1, 0) . "\n\n";
Example #2
0
<?php

require_once 'Fn.php';
$a = array(1, 2, 3);
$b = array(10, 20, 30);
$c = array(100, 200, 300);
$r = Fn::zip($a, $b, $c);
var_dump($r);