| 
									
										
										
										
											2009-01-30 11:15:26 -05:00
										 |  |  | ! (c)2009 Slava Pestov & Joe Groff, see BSD license | 
					
						
							| 
									
										
										
										
											2009-01-30 10:39:15 -05:00
										 |  |  | 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 ;
 |