diff --git a/extra/combinators/lib/lib-tests.factor b/extra/combinators/lib/lib-tests.factor index f0b233c519..838bb08b92 100755 --- a/extra/combinators/lib/lib-tests.factor +++ b/extra/combinators/lib/lib-tests.factor @@ -8,6 +8,9 @@ IN: combinators.lib.tests [ 5 4 ] [ 5 0 1 [ + ] [ - ] bi*, bi ] unit-test [ 5 4 5 ] [ 5 0 1 1 [ + ] [ - ] [ * ] tri*, tri ] unit-test +[ 5 6 ] [ 5 0 1 [ + ] bi@, bi ] unit-test +[ 5 6 7 ] [ 5 0 1 2 [ + ] tri@, tri ] unit-test + [ 5 ] [ [ 10 random ] [ 5 = ] generate ] unit-test [ t ] [ [ 10 random ] [ even? ] generate even? ] unit-test diff --git a/extra/combinators/lib/lib.factor b/extra/combinators/lib/lib.factor index 06c5ebc16c..a7d5e4cf58 100755 --- a/extra/combinators/lib/lib.factor +++ b/extra/combinators/lib/lib.factor @@ -22,6 +22,11 @@ IN: combinators.lib : tri*, ( obj obj obj quot quot quot -- quot' quot' quot' ) [ [ curry ] curry ] tri@ tri* ; inline +: bi@, ( obj obj quot -- quot' quot' ) + [ curry ] curry bi@ ; inline +: tri@, ( obj obj obj quot -- quot' quot' quot' ) + [ curry ] curry tri@ ; inline + ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Generalized versions of core combinators ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!