factor/extra/sequences/squish/squish.factor

13 lines
425 B
Factor

! (c)2009 Slava Pestov & Joe Groff, see BSD license
USING: combinators.short-circuit fry make math kernel sequences ;
IN: sequences.squish
: (squish) ( seq quot: ( obj -- ? ) -- )
2dup call [ '[ _ (squish) ] each ] [ drop , ] if ; inline recursive
: squish ( seq quot exemplar -- seq' )
[ [ (squish) ] ] dip make ; inline
: squish-strings ( seq -- seq' )
[ { [ sequence? ] [ integer? not ] } 1&& ] "" squish ;