lambdish/phunctional

λ PHP 函数式库

v2.1.0 2020-09-18 07:22 UTC

This package is auto-updated.

Last update: 2024-08-25 10:54:25 UTC


README

Phunctional,因为函数式编程很重要。

Lambdish MIT License Version Monthly Downloads Travis Build Status

Lambdish的Phunctional是一个小库,试图将一些函数式编程的方面引入PHP,包括强高阶函数和用于管理可迭代对象的函数。


关于

Phunctional深受Clojure以及一些其他PHP库的启发,如itercomposefelpado

我们在开发这个库时考虑的主要原则是

  • 集合可以是任何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)。

文档

你可以在这里找到函数的文档这里