From 7f496c6497ee9ad0459ccd2f82893feb78e240f0 Mon Sep 17 00:00:00 2001 From: erg Date: Fri, 6 Oct 2006 03:45:00 +0000 Subject: [PATCH] add trim to contrib/sequences --- contrib/sequences.factor | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/contrib/sequences.factor b/contrib/sequences.factor index 176d5efc5a..1232214002 100644 --- a/contrib/sequences.factor +++ b/contrib/sequences.factor @@ -1,4 +1,4 @@ -USING: kernel math sequences ; +USING: kernel math sequences strings ; IN: sequences-contrib ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -15,6 +15,17 @@ IN: sequences-contrib ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: last ( seq -- elt ) dup length 1- swap nth ; +: last ( seq -- elt ) [ length 1- ] keep nth ; -PROVIDE: contrib/sequences ; \ No newline at end of file +: rtrim* ( seq quot -- newseq ) + 2dup >r last r> call [ >r dup length 1- head-slice r> rtrim* ] [ drop ] if ; +: rtrim ( seq -- newseq ) [ blank? ] rtrim* ; + +: ltrim* ( seq quot -- newseq ) + 2dup >r first r> call [ >r 1 tail-slice r> ltrim* ] [ drop ] if ; +: ltrim ( seq -- newseq ) [ blank? ] ltrim* ; + +: trim* ( seq quot -- newseq ) [ ltrim* ] keep rtrim* ; +: trim ( seq -- newseq ) [ blank? ] trim* ; + +PROVIDE: contrib/sequences ;