From 8805da92e0c88a127b030c89826e55929dec30c5 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 14 May 2013 09:40:40 -0700 Subject: [PATCH] combinators.extras: adding keepd. --- extra/combinators/extras/extras-tests.factor | 2 ++ extra/combinators/extras/extras.factor | 3 +++ 2 files changed, 5 insertions(+) diff --git a/extra/combinators/extras/extras-tests.factor b/extra/combinators/extras/extras-tests.factor index 594ec44c46..71b773ef99 100644 --- a/extra/combinators/extras/extras-tests.factor +++ b/extra/combinators/extras/extras-tests.factor @@ -27,3 +27,5 @@ IN: combinators.extras.tests { 2 15 } [ 1 2 3 4 5 6 [ - - ] [ + + ] 3bi* ] unit-test { 2 5 } [ 1 2 3 4 5 6 [ - - ] 3bi@ ] unit-test + +{ 3 1 } [ 1 2 [ + ] keepd ] unit-test diff --git a/extra/combinators/extras/extras.factor b/extra/combinators/extras/extras.factor index 28a87ef608..dffd402aa1 100644 --- a/extra/combinators/extras/extras.factor +++ b/extra/combinators/extras/extras.factor @@ -24,3 +24,6 @@ MACRO: cleave-array ( quots -- ) : 3bi@ ( u v w x y z quot -- ) dup 3bi* ; inline + +: keepd ( ..a x y quot: ( ..a x y -- ..b ) -- ..b x ) + 2keep drop ; inline