Example #1
0
/**
 * concatStrings :: String -> String -> String
 *
 * @param string $a
 * @param string $b
 *
 * @return string
 */
function concatStrings($a, $b = null)
{
    return call_user_func_array(curryN(2, function ($a, $b) {
        return $a . $b;
    }), func_get_args());
}
Example #2
0
/**
 * orr :: (a -> Bool) -> (a -> Bool) -> a -> Bool
 *
 * @param callable $predicateA
 * @param callable|null $predicateB
 * @param mixed $value
 *
 * @return mixed
 */
function orr(callable $predicateA, callable $predicateB = null, $value = null)
{
    return call_user_func_array(curryN(3, function (callable $a, callable $b, $value) {
        return call_user_func($a, $value) || call_user_func($b, $value);
    }), func_get_args());
}