From cd94b89a9bc52d14abbf852e59bad4137e97267f Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sat, 6 Aug 2022 09:07:08 -0700 Subject: [PATCH] sequences.extras: adding map-if --- extra/sequences/extras/extras-tests.factor | 2 ++ extra/sequences/extras/extras.factor | 3 +++ 2 files changed, 5 insertions(+) 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 +