From 5aa78554adfe55db44266fc8ab506125336074f8 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info> Date: Tue, 1 Jul 2008 15:36:38 -0500 Subject: [PATCH] newfx: pluck and snip --- extra/newfx/newfx.factor | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/extra/newfx/newfx.factor b/extra/newfx/newfx.factor index b59e204e0c..0e24ff2507 100644 --- a/extra/newfx/newfx.factor +++ b/extra/newfx/newfx.factor @@ -199,4 +199,23 @@ METHOD: as-mutate { object object assoc } set-at ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: start ( seq subseq -- i ) swap sequences:start ; \ No newline at end of file +: start ( seq subseq -- i ) swap sequences:start ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +: pluck ( seq i -- seq ) cut-slice rest-slice append ; +: pluck-from ( i seq -- seq ) swap pluck ; +: pluck! ( seq i -- seq ) over delete-nth ; +: pluck-from! ( i seq -- seq ) tuck delete-nth ; +: plucked! ( seq i -- ) swap delete-nth ; +: plucked-from! ( i seq -- ) delete-nth ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +: snip ( seq a b -- seq ) >r over r> [ head ] [ tail ] 2bi* append ; +: snip-this ( a b seq -- seq ) -rot snip ; +: snip! ( seq a b -- seq ) pick delete-slice ; +: snip-this! ( a b seq -- seq ) -rot pick delete-slice ; +: snipped! ( seq a b -- ) rot delete-slice ; +: snipped-from! ( a b seq -- ) delete-slice ; +