lambdish / phunctional
λ PHP 函数式库
v2.1.0
2020-09-18 07:22 UTC
Requires
- php: >=7.2
Requires (Dev)
- phpstan/phpstan: ^0.11.16
- phpunit/phpunit: ^8.4
README
Phunctional,因为函数式编程很重要。
Lambdish的Phunctional是一个小库,试图将一些函数式编程的方面引入PHP,包括强高阶函数和用于管理可迭代对象的函数。
关于
Phunctional深受Clojure以及一些其他PHP库的启发,如iter、compose和felpado。
我们在开发这个库时考虑的主要原则是
- 集合可以是任何PHP可迭代对象,包括数组或生成器
- 优先使用组合而非继承
- 尽可能懒惰
- 避免状态,状态通常是邪恶的!
- 简单胜于容易
- 如果合理,则打破上述规则
所有这些都可以用一个词来概括:不可变性。
安装
使用composer安装
composer require lambdish/phunctional
简单使用
首先,导入你将要使用的所有函数,例如
use function Lambdish\phunctional\map;
然后你就可以使用它了
map( function ($number) { return $number + 10; }, [1, 2, 3, 4, 5] ); // => [11, 12, 13, 14, 15]
然后做一些更复杂的事情,比如
use function Lambdish\Phunctional\pipe; use const Lambdish\Phunctional\{filter_null, reverse, first}; $lastNonNullableValue = pipe(filter_null, reverse, first); $lastNonNullableValue(['first', null, 'other', 'last non nullable', null, null]); // => "last non nullable"
这里我们使用提供的常量,它们充当函数完全限定命名空间的别名(因此,是callable
)。
文档
你可以在这里找到函数的文档这里。