コード例 #1
0
ファイル: PartitionBy.php プロジェクト: bahulneel/phonon
 public function result($result)
 {
     if (count($this->a) > 0) {
         $result = Transducers::unreduced($this->xf->step($result, $this->a));
         $this->a = [];
     }
     return $this->xf->result($result);
 }
コード例 #2
0
 public static function reduce($coll, TransformerInterface $xf, $init)
 {
     $result = $init;
     foreach ($coll as $key => $value) {
         $result = $xf->step($result, new Pair([$key, $value]));
         if (Transducers::isReduced($result)) {
             $result = Transducers::deref($result);
             break;
         }
     }
     return $xf->result($result);
 }
コード例 #3
0
ファイル: ArrayReduce.php プロジェクト: bahulneel/phonon
 public static function reduceArray($coll, TransformerInterface $xf, $init)
 {
     $result = array_reduce($coll, function ($result, $input) use($xf) {
         if (Transducers::isReduced($result)) {
             return $result;
         }
         return $xf->step($result, $input);
     }, $init);
     if (Transducers::isReduced($result)) {
         $result = Transducers::deref($result);
     }
     return $xf->result($result);
 }
コード例 #4
0
ファイル: FileReduce.php プロジェクト: bahulneel/phonon
 public static function reduce($coll, TransformerInterface $xf, $init)
 {
     $result = $init;
     while (!feof($coll)) {
         $item = fgets($coll, 8196);
         $result = $xf->step($result, $item);
         if (Transducers::isReduced($result)) {
             $result = Transducers::deref($result);
             break;
         }
     }
     return $xf->result($result);
 }
コード例 #5
0
ファイル: StringReduce.php プロジェクト: bahulneel/phonon
 public static function reduce($coll, TransformerInterface $xf, $init)
 {
     $result = $init;
     $length = strlen($coll);
     for ($i = 0; $i < $length; $i += 1) {
         $result = $xf->step($result, $coll[$i]);
         if (Transducers::isReduced($result)) {
             $result = Transducers::deref($result);
             break;
         }
     }
     return $xf->result($result);
 }
コード例 #6
0
ファイル: Take.php プロジェクト: bahulneel/phonon
 public function result($result)
 {
     return $this->xf->result($result);
 }