mckayb/phantasy-recursion-schemes
Composer 安装命令:
composer require mckayb/phantasy-recursion-schemes
包简介
Common recursion schemes implemented in PHP
README 文档
README
Common recursion schemes implemented in PHP.
Getting Started
Installation
composer require mckayb/phantasy-recursion-schemes
Usage
// This comes from https://github.com/mckayb/phantasy-types use function Phantasy\Types\sum; use function Phantasy\Recursion\cata; $LL = sum('LinkedList', [ 'Cons' => ['head', 'tail'], 'Nil' => [] ]); $LL->map = function (callable $f) { return $this->cata([ 'Cons' => function ($head, $tail) use ($f) { return $this->Cons($head, $f($tail)); }, 'Nil' => function () { return $this->Nil(); } ]); }; $LL->isNil = function () { return $this->cata([ 'Cons' => function ($head, $tail) { return false; }, 'Nil' => function () { return true; } ]); }; $alg = function ($x) { return $x->isNil() ? 0 : $x->head + $x->tail; }; $a = $LL->Cons(3, $LL->Cons(2, $LL->Cons(1, $LL->Nil()))); echo cata($alg, $a); // 6
For more information, read the docs!
What's Included
- Catamorphisms, Anamorphisms, Hylomorphisms
Contributing
Find a bug? Want to make any additions? Just create an issue or open up a pull request.
Want more?
For other helpers not included in this repo, check out
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-10-17