From 01d0ab20c67c8b6e240f0ceaa6092cfca55ef919 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Mon, 31 Mar 2008 15:28:21 -0600 Subject: [PATCH] sequences: new words: prefix and suffix --- core/sequences/sequences.factor | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index 1f2a6c5501..26c1013c28 100755 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -478,18 +478,31 @@ M: sequence <=> : push-new ( elt seq -- ) [ delete ] 2keep push ; +: add* ( seq elt -- newseq ) + over >r over length 1+ r> [ + [ 0 swap set-nth-unsafe ] keep + [ 1 swap copy ] keep + ] new-like ; + +: prefix ( seq elt -- newseq ) + over >r over length 1+ r> [ + [ 0 swap set-nth-unsafe ] keep + [ 1 swap copy ] keep + ] new-like ; + : add ( seq elt -- newseq ) over >r over length 1+ r> [ [ >r over length r> set-nth-unsafe ] keep [ 0 swap copy ] keep ] new-like ; -: add* ( seq elt -- newseq ) +: suffix ( seq elt -- newseq ) over >r over length 1+ r> [ - [ 0 swap set-nth-unsafe ] keep - [ 1 swap copy ] keep + [ >r over length r> set-nth-unsafe ] keep + [ 0 swap copy ] keep ] new-like ; + : seq-diff ( seq1 seq2 -- newseq ) swap [ member? not ] curry subset ;