17 lines
		
	
	
		
			453 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			453 B
		
	
	
	
		
			Factor
		
	
	
USING: locals sequences kernel math ;
 | 
						|
IN: sorting.insertion
 | 
						|
 | 
						|
<PRIVATE
 | 
						|
:: insert ( ... seq quot: ( ... elt -- ... elt' ) n -- ... )
 | 
						|
    n zero? [
 | 
						|
        n n 1 - [ seq nth quot call ] bi@ >= [
 | 
						|
            n n 1 - seq exchange
 | 
						|
            seq quot n 1 - insert
 | 
						|
        ] unless
 | 
						|
    ] unless ; inline recursive
 | 
						|
PRIVATE>
 | 
						|
 | 
						|
: insertion-sort ( seq quot -- )
 | 
						|
    ! quot is a transformation on elements
 | 
						|
    over length [ insert ] with with each-integer ; inline
 |