@@ 589-599 (lines=11) @@ | ||
586 | * @param array $list |
|
587 | * @return array |
|
588 | */ |
|
589 | function takeWhile() { |
|
590 | static $takeWhile = false; |
|
591 | $takeWhile = $takeWhile ?: curry(function($predicate, $list) { |
|
592 | $index = 0; |
|
593 | $size = length($list); |
|
594 | while ($index < $size && $predicate($list[$index])) |
|
595 | $index ++; |
|
596 | return array_slice($list, 0, $index); |
|
597 | }); |
|
598 | return _apply($takeWhile, func_get_args()); |
|
599 | } |
|
600 | ||
601 | /** |
|
602 | * Same as `takeWhile` but taking elements from the end of the array. |
|
@@ 643-653 (lines=11) @@ | ||
640 | * @param array $list |
|
641 | * @return array |
|
642 | */ |
|
643 | function takeUntil() { |
|
644 | static $takeUntil = false; |
|
645 | $takeUntil = $takeUntil ?: curry(function($predicate, $list) { |
|
646 | $index = 0; |
|
647 | $size = length($list); |
|
648 | while ($index < $size && !$predicate($list[$index])) |
|
649 | $index ++; |
|
650 | return array_slice($list, 0, $index); |
|
651 | }); |
|
652 | return _apply($takeUntil, func_get_args()); |
|
653 | } |
|
654 | ||
655 | /** |
|
656 | * Same as `takeUntil` but takes elements from the end of the array. |
|
@@ 740-750 (lines=11) @@ | ||
737 | * @param array $list |
|
738 | * @return array |
|
739 | */ |
|
740 | function removeWhile() { |
|
741 | static $removeWhile = false; |
|
742 | $removeWhile = $removeWhile ?: curry(function($predicate, $list) { |
|
743 | $index = 0; |
|
744 | $size = length($list); |
|
745 | while ($index < $size && $predicate($list[$index])) |
|
746 | $index ++; |
|
747 | return array_slice($list, $index); |
|
748 | }); |
|
749 | return _apply($removeWhile, func_get_args()); |
|
750 | } |
|
751 | ||
752 | /** |
|
753 | * Same as `removeWhile` but removes elements from the end of the array. |
|
@@ 795-805 (lines=11) @@ | ||
792 | * @param array $list |
|
793 | * @return array |
|
794 | */ |
|
795 | function removeUntil() { |
|
796 | static $removeUntil = false; |
|
797 | $removeUntil = $removeUntil ?: curry(function($predicate, $list) { |
|
798 | $index = 0; |
|
799 | $size = length($list); |
|
800 | while ($index < $size && !$predicate($list[$index])) |
|
801 | $index ++; |
|
802 | return array_slice($list, $index); |
|
803 | }); |
|
804 | return _apply($removeUntil, func_get_args()); |
|
805 | } |
|
806 | ||
807 | /** |
|
808 | * Same as `removeUntil` but removes elements from the end of the array. |