예제 #1
0
파일: Chain.php 프로젝트: iddqdby/f7
 /**
  * Invoke a value if it is callable.
  *
  * @param array $args optional array of arguments to pass to the optional callable
  * @return Chain the result of the invocation wrapped into a Chain, or empty Chain
  */
 public function invokeArray(array $args = []) : Chain
 {
     return $this->continue(conditionally(is_callable, curry(reverse(call_user_func_array), 2)($args)));
 }
예제 #2
0
파일: Stream.php 프로젝트: iddqdby/f7
 /**
  * Find last element of the stream (optionally matched with predicate).
  *
  * This is a closing operation (it calls <code>$this->close()</code> internally).
  *
  * @param callable $predicate the predicate (optional)
  * @return Optional an optional result
  * @see \monad\Stream::close()
  */
 public function findLast(callable $predicate = null) : Optional
 {
     return $this->bindMonad(sequence(curry(reverse(array_reverse))(true), curry(function ($predicate, array $array) {
         return $this->find($predicate, $array);
     }, 2)($predicate), optional));
 }