yuyat/curry
Composer 安装命令:
composer require yuyat/curry
包简介
Function does currying
README 文档
README
Function does currying.
Virtually, it transforms functions takes multiple arguments into nested function each takes one argument like below.
f(x, y, z) => f(x)(y)(z)
And it can be applicated partially. All of below means same.
f(x)(y)(z)
f(x)(y, z)
f(x, y)(z)
f(x, y, z)
Usage
Basic usage
<?php use function yuyat\curry; $sum = curry(function ($x, $y, $z) { reteurn $x + $y + $z; }); echo $sum(1)->apply(2)->apply(3), PHP_EOL; // => 6 echo $sum[1][2][3], PHP_EOL; // Ruby-like short syntax // => 6
Currying functions take variadic parameters
For functions take variadic parameters, you must specify actual parameter length as 2nd argument.
<?php use function yuyat\curry; $sum = curry(function (/* numbers to calculate sum */) { $result = 0; foreach (func_get_args() as $arg) { $result += $arg; } return $result; }, 3); echo $sum(1)->apply(2)->apply(3), PHP_EOL; // => 6
Author
Yuya Takeyama
统计信息
- 总下载量: 13
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-10-13