diff --git a/extra/newfx/newfx.factor b/extra/newfx/newfx.factor index e62747a2eb..9335c61025 100644 --- a/extra/newfx/newfx.factor +++ b/extra/newfx/newfx.factor @@ -159,6 +159,11 @@ METHOD: as-mutate { object object assoc } set-at ; : prefix-on ( elt seq -- seq ) swap prefix ; : suffix-on ( elt seq -- seq ) swap suffix ; +: suffix! ( seq elt -- seq ) over sequences:push ; +: suffix-on! ( elt seq -- seq ) tuck sequences:push ; +: suffixed! ( seq elt -- ) swap sequences:push ; +: suffixed-on! ( elt seq -- ) sequences:push ; + ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : subseq ( seq from to -- subseq ) rot sequences:subseq ; @@ -221,4 +226,14 @@ METHOD: as-mutate { object object assoc } set-at ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: invert-index ( seq i -- seq i ) >r dup length 1 - r> - ; \ No newline at end of file +: invert-index ( seq i -- seq i ) >r dup length 1 - r> - ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +: append! ( a b -- ab ) over sequences:push-all ; +: append-to! ( b a -- ab ) swap over sequences:push-all ; +: appended! ( a b -- ) swap sequences:push-all ; +: appended-to! ( b a -- ) sequences:push-all ; + +: prepend! ( a b -- ba ) over append 0 pick copy ; +: prepended! ( a b -- ) over append 0 rot copy ;