]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/sequences/extras/extras.factor
sequences.extras: additional tests for take-while and drop-while.
[factor.git] / extra / sequences / extras / extras.factor
index 1092be46b76ab1c9d38207bc5e529b08ba2d311e..5ae2255a802785590e939c05970da8f21c06a7ea 100644 (file)
@@ -604,7 +604,9 @@ PRIVATE>
     '[ swap _ dip swap ] assoc-map ; inline
 
 : take-while ( ... seq quot: ( ... elt -- ... ? ) -- head-slice )
-    [ '[ @ not ] find drop ] 2keep drop swap 0 or head-slice ; inline
+    [ '[ @ not ] find drop ] 2keep drop swap
+    [ dup length ] unless* head-slice ; inline
 
 : drop-while ( ... seq quot: ( ... elt -- ... ? ) -- tail-slice )
-    [ '[ @ not ] find drop ] 2keep drop swap 0 or tail-slice ; inline
+    [ '[ @ not ] find drop ] 2keep drop swap
+    [ dup length ] unless* tail-slice ; inline