]> gitweb.factorcode.org Git - factor.git/blob - extra/sequences/squish/squish.factor
factor: trim using lists
[factor.git] / extra / sequences / squish / squish.factor
1 ! (c)2009 Slava Pestov & Joe Groff, see BSD license
2 USING: combinators.short-circuit make math kernel sequences ;
3 IN: sequences.squish
4
5 : (squish) ( seq quot: ( obj -- ? ) -- )
6     2dup call [ '[ _ (squish) ] each ] [ drop , ] if ; inline recursive
7
8 : squish ( seq quot exemplar -- seq' )
9     [ [ (squish) ] ] dip make ; inline
10
11 : squish-strings ( seq -- seq' )
12     [ { [ sequence? ] [ integer? not ] } 1&& ] "" squish ;