pawaclawczyk / scalp

Some Scala useful classes ported to PHP.
18 stars 1 forks source link

Partial application of function #12

Closed pawaclawczyk closed 7 years ago

pawaclawczyk commented 7 years ago

Examples of partially applied

function f($x, $y) { return ... }

$g = function ($x, $y) { return ... }

class F
{
    public static function sf($x, $y)
    {
        return ...
    }

    public function m($x, $y)
    {
        return ...
    }

    public function __invoke($x, $y)
    {
        return ...
    }
}

$fc = new F();

papply(f, __, 2);              // => f(__, 2)
papply($g, __, 2);             // => $g(__, 2)
papply(F::class, 'sf', __, 2); // => F::sf(__, 2)
papply($fc, 'm', __, 2);       // => $fc->m(__, 2)
papply($fc, __, 2);            // => $fc(__, 2)