Example #1
0
 public function testIsNaryFunktion()
 {
     $funktion = Callables::newFunktion(function ($a, $b, $c) {
         return null;
     });
     $this->assertFalse(Callables::isUnaryFunktion($funktion));
     $this->assertFalse(Callables::isBinaryFunktion($funktion));
     $this->assertTrue(Callables::isNaryFunktion($funktion));
 }
 public function testFunktion()
 {
     $this->assertEquals(Callables::newFunktion(self::get1Ary()), Funktion(self::get1Ary()));
     $this->assertEquals(Callables::newFunktion(self::get2Ary()), Funktion(self::get2Ary()));
     $this->assertEquals(Callables::newFunktion(self::get3Ary()), Funktion(self::get3Ary()));
 }
Example #3
0
/**
 * Creates a new functor from a given callable.
 *
 * The actual instance depends on the callable's arity:
 * <ul>
 * <li>A 1-ary callable creates an unary functor</li>
 * <li>A 2-ary callable creates a binary functor</li>
 * <li>Otherwise a N-ary functor is created</li>
 * </ul>
 *
 * @param callable $functor
 *            The given callable.
 * @return FunktionInterface
 */
function Funktion(callable $functor) : FunktionInterface
{
    return Callables::newFunktion($functor);
}