]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.extras: adding map-if
authorJohn Benediktsson <mrjbq7@gmail.com>
Sat, 6 Aug 2022 16:07:08 +0000 (09:07 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sat, 6 Aug 2022 16:07:08 +0000 (09:07 -0700)
extra/sequences/extras/extras-tests.factor
extra/sequences/extras/extras.factor

index 38455fb4489782d679d08520f7d954b786d95b2c..23100570db780b35718c39ff7d5eee51456b7212 100644 (file)
@@ -294,3 +294,5 @@ tools.test vectors vocabs ;
 { { } } [
     { } [ nip ] map-with-previous
 ] unit-test
+
+{ { -1 2 -3 4 -5 } } [ { 1 2 3 4 5 } [ odd? ] [ neg ] map-if ] unit-test
index 2d3b67ed14c8dc88bda5e97d770156e162ef96ea..dc56d117d478c7d7b27873fa10579a447b08df4c 100644 (file)
@@ -282,6 +282,9 @@ PRIVATE>
 : map-from ( ... seq quot: ( ... elt -- ... newelt ) i -- ... newseq )
     pick map-from-as ; inline
 
+: map-if ( ... seq if-quot: ( ... elt -- ... ? ) map-quot: ( ... elt -- ... newelt ) -- ... newseq )
+    '[ dup @ _ when ] map ; inline
+
 <PRIVATE
 
 : push-map-if ( ..a elt filter-quot: ( ..a elt -- ..b ? ) map-quot: ( ..a elt -- ..b newelt ) accum -- ..b )