此软件包最新版本(dev-master)没有提供许可信息。
dev-master
2018-10-25 06:00 UTC
Requires (Dev)
- phpunit/phpunit: ~6
This package is auto-updated.
Last update: 2024-09-26 20:26:19 UTC
README
f 是一个 PHP 的功能库
注意:此库尚未针对性能进行优化
柯里化
$threeArgs = function($a, $b, $c) { return [$a, $b, $c];$expected = }; $treeArgsPartial = \f\partial($threeArgs); $firstAs666 = $treeArgsPartial(666); $firstAs666(777, 888); //[666,777,888]
折叠
$addOne = function($a, $b) { return $a+1; }; $count = \f\fold($addOne, 0); $count([3, 4, 5, 7]); //4
折叠树
$tree = [ '01' => [ '02', '03' => [ '4', ], ] ]; \f\foldTree($sum, $sum, 0, $tree) //10
映射树
$tree = [ '03' => [1,4], '01' => [1,'05' => [1,2, 3]] ]; $double = function($a) { return $a*2; }; $result = \f\mapTree($double, $tree); //[ // '06' => [2,8], // '02' => [2,'010' => [2,4,6]] //];
模式匹配
$sumList = \f\patternMatch([ '[]' => 0, '(x:xs)' => function ($x, $xs) use (&$sumList) { return $x + $sumList($xs); } ]); $sumList([1,2,3]); //6
懒加载
\f\takeFrom(\f\infinity(), 5) //[0,1,2,3,4]
记忆化
$calls = 0; $factorial = function($x) use (&$factorial, &$calls) { $calls++; if ($x == 1) { return 1; } return $x * $factorial($x - 1); }; $memoizedFactorial = \f\memoize($factorial); $memoizedFactorial(4); $memoizedFactorial(4); //$calls = 4