/** * 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()); }
/** * 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()); }