yuyat/curry 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-10-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固