From: John Benediktsson Date: Sat, 6 Aug 2022 16:07:08 +0000 (-0700) Subject: sequences.extras: adding map-if X-Git-Tag: 0.99~1193 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=cd94b89a9bc52d14abbf852e59bad4137e97267f sequences.extras: adding map-if --- diff --git a/extra/sequences/extras/extras-tests.factor b/extra/sequences/extras/extras-tests.factor index 38455fb448..23100570db 100644 --- a/extra/sequences/extras/extras-tests.factor +++ b/extra/sequences/extras/extras-tests.factor @@ -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 diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 2d3b67ed14..dc56d117d4 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -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 +