]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/sequences/extras/extras.factor
sequences.extras: simpler find-all and a test.
[factor.git] / extra / sequences / extras / extras.factor
index cc459ebead037ee47dd03a58918b5c1daca54e9a..aa901bd808d1dba90aaf10c8b0a7c428f1edc9fe 100644 (file)
@@ -21,10 +21,8 @@ IN: sequences.extras
 :: combos ( list1 list2 -- result )
     list2 [ [ 2array ] curry list1 swap map ] map concat ;
 
-: find-all ( seq quot: ( elt -- ? ) -- elts )
-    [ [ length iota ] keep ] dip
-    [ dupd call( a -- ? ) [ 2array ] [ 2drop f ] if ] curry
-    2map sift ; inline
+: find-all ( ... seq quot: ( ... elt -- ... ? ) -- ... elts )
+    [ <enum> ] dip '[ nip @ ] assoc-filter ; inline
 
 : reduce-from ( ... seq identity quot: ( ... prev elt -- ... next ) i -- ... result )
     [ swap ] 2dip each-from ; inline