26 lines
		
	
	
		
			655 B
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			655 B
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								! Copyright (C) 2013 John Benediktsson
							 | 
						||
| 
								 | 
							
								! See http://factorcode.org/license.txt for BSD license
							 | 
						||
| 
								 | 
							
								USING: accessors kernel math math.order sequences ;
							 | 
						||
| 
								 | 
							
								IN: sequences.snipped
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								TUPLE: snipped
							 | 
						||
| 
								 | 
							
								{ seq sequence read-only }
							 | 
						||
| 
								 | 
							
								{ from integer read-only }
							 | 
						||
| 
								 | 
							
								{ length integer read-only } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: <snipped> ( from to seq -- snipped )
							 | 
						||
| 
								 | 
							
								    [ length min ] keep -rot over - snipped boa ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: <removed> ( i seq -- snipped )
							 | 
						||
| 
								 | 
							
								    [ dup 1 + ] dip <snipped> ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: snipped length [ seq>> length ] [ length>> ] bi [-] ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: snipped virtual@
							 | 
						||
| 
								 | 
							
								    [ [ from>> dupd >= ] keep [ length>> + ] curry when ]
							 | 
						||
| 
								 | 
							
								    [ seq>> ] bi ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: snipped virtual-exemplar seq>> ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								INSTANCE: snipped virtual-sequence
							 |