コード例 #1
0
ファイル: Main.php プロジェクト: luijar/fp-php
 public function newItem(Request $request) : RedirectResponse
 {
     $newItem = Nullable::fromValue($request->input('text'))->reject('')->filter(P::allPass(['strlen']))->map(ItemService::class . '::createNewItem')->getOrCall(function () {
         Log::info('New item content not found. Skipping...');
     });
     return redirect('/main')->with('status', 'New item added!');
 }
コード例 #2
0
ファイル: pramda.php プロジェクト: kapolos/pramda
 public function testAllPass()
 {
     $isMultipleOf = P::curry2(function ($base, $value) {
         $modBy = P::flip('P::mathMod', 2);
         $modByX = $modBy($base);
         return $modByX($value) > 0 ? FALSE : TRUE;
     });
     $isEven = $isMultipleOf(2);
     $isMultipleOf10 = $isMultipleOf(10);
     $isEvenMultipleOfTen = P::allPass([$isEven, $isMultipleOf10]);
     $this->assertTrue(P::allPass([$isEven, $isMultipleOf10], 20));
     $this->assertFalse(P::allPass([$isEven, $isMultipleOf10], 22));
     $this->assertFalse(P::allPass([$isEven, $isMultipleOf10], 21));
     $this->assertTrue($isEvenMultipleOfTen(20));
     $this->assertFalse($isEvenMultipleOfTen(22));
     $a = function () use($isEven, $isMultipleOf) {
         (yield $isEven);
         (yield $isMultipleOf);
     };
     $this->assertTrue(P::allPass([$isEven, $isMultipleOf10], 20));
 }