From 00333096e1e06e3665bb24348139ec84fb6165f8 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sat, 23 Feb 2008 14:22:04 -0600 Subject: [PATCH] combinators.cleave: add general spread macro --- extra/combinators/cleave/cleave.factor | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/extra/combinators/cleave/cleave.factor b/extra/combinators/cleave/cleave.factor index e1e3585813..ba49fac431 100644 --- a/extra/combinators/cleave/cleave.factor +++ b/extra/combinators/cleave/cleave.factor @@ -30,3 +30,16 @@ IN: combinators.cleave : tetra* ( obj obj obj obj quot quot quot quot -- val val val val ) >r roll >r tri* r> r> call ; inline + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +! General spread + +USING: sequences macros ; + +MACRO: spread ( seq -- ) + dup + [ drop [ >r ] ] map concat + swap + [ [ r> ] swap append ] map concat + append ;