yuyat / piper
Helps functional programming in OO style.
v0.0.1
2014-10-09 16:57 UTC
Requires
- php: >= 5.3
Requires (Dev)
This package is auto-updated.
Last update: 2024-11-25 21:38:34 UTC
README
Helps functional programming in OO style.
It is recommended to combine this library with other functional libraries like iter.
Usage
Basic Piper
<?php use yuyat\Piper; use function iter\fn\operator; use function iter\range; $result = Piper::from(range(1, 10)) ->pipe('iter\map', [operator('*', 2)]) ->pipe(function ($iter) { return reduce(operator('+'), $iter, 0); }) ->get(); echo $result, PHP_EOL; // => 110
Your custom Piper
<?php use yuyat\Piper; use function iter\fn\operator; use function iter\range; use function iter\map; use function iter\reduce; class IterPiper extends Piper { public function map($fn) { return new static(map($fn, $this->get())); } public function reduce($fn, $initial = null) { return new static(reduce($fn, $this->get(), $initial)); } } $result = IterPiper::from(range(1, 10)) ->map(operator('*', 2)) ->reduce(operator('+'), 0) ->get(); echo $result, PHP_EOL; // => 110
Author
Yuya Takeyama