Creates a Closure that reduces an array or iterable right-to-left, starting from an initial accumulator.
/**
* @param callable(mixed $carry, mixed $value): mixed $callable
* @param mixed $initial
* @return Closure(iterable<int|string, mixed>):mixed
*/
Arrays\foldR(callable $callable, $initial = []): ClosureWhen Arrays\foldR() is called, it returns the following Closure which can be used like a regular function.
/**
* @param iterable<int|string, mixed> $source
* @return mixed
*/
$function (iterable $source)This can be used to create a simple closure which can be used as a regular function.
$joinReversed = Arrays\foldR(fn($acc, $v) => $acc . $v, '');
echo $joinReversed(['a', 'b', 'c']); // cbaThis can be called inline using currying.
echo Arrays\foldR(fn($acc, $n) => $acc - $n, 100)([1, 2, 3]); // 100 - 3 - 2 - 1 = 94