Functional utilities a la PHP
<?php
function pipe(...$fns) {
return function($x) use ($fns) {
return array_reduce(
$fns,
function($acc, $fn) { return $fn($acc); },
$x
);
};
}
function flip($fn) {
return function($a, $b, ...$args) use ($fn) {
return $fn($b, $a, ...$args);
};
}