/** * @dataProvider provideData */ public function test_it_should_extract_elements_which_exists($data) { // $get :: String a -> [b] -> Maybe b $get = f\curryN(2, function ($key, $array) { return isset($array[$key]) ? m\just($array[$key]) : m\nothing(); }); $listOfFirstImages = f\pipeline(Listt::of, f\map(m\maybeNull), f\bind(f\bind($get('meta'))), f\bind(f\bind($get('images'))), f\bind(f\bind($get(0))), f\join); $result = $listOfFirstImages($data); $this->assertEquals(Listt::of([m\just('//first.jpg'), m\just('//third.jpg'), m\nothing()]), $result); }
public function test_it_should_retun_function_accepting_arguments() { $this->assertInstanceOf(\Closure::class, f\pipeline('strtolower', 'strtoupper')); }
function handleRequest(array $request) { return call_user_func(f\pipeline('validateInput', f\map('canonizeEmail'), f\bind('updateDatabaseStep'), 'sendMessage'), $request); }