phunctional ,因为功能编程很重要。
Lambdish的phunctional是一个小库,试图通过UTIL高阶功能和功能来使功能编程的某些方面以及用于管理Iterables的功能。
关于
phunctional的灵感来自Clojure和其他一些PHP库,例如Iter,Compose和Felpado。
我们想到开发该库的主要原则是:
- 收集可以是任何可觉得可以觉得的PHP对象,数组或发电机
- 偏爱构图与继承
- 懒惰的时候
- 避免状态,状态是(通常)邪恶!
- 简单性的易气性
- 如果有意义,请违反上述规则
所有这些都可以用一个词来恢复:不变性。
安装
用作曲家安装它:
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]并做一些更复杂的事情:
phunctionalpipe;
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"">
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 )的功能一样的别名。
文档
您可以在此处找到功能文档。
下载源码
通过命令行克隆项目:
git clone https://github.com/Lambdish/phunctional.git