sequences.extras: bounds-check in rotate! and do exchange-unsafe.
							parent
							
								
									bfb6bdd891
								
							
						
					
					
						commit
						6dc49d6014
					
				| 
						 | 
				
			
			@ -119,9 +119,9 @@ IN: sequences.extras
 | 
			
		|||
    cut prepend ;
 | 
			
		||||
 | 
			
		||||
:: rotate! ( seq n -- )
 | 
			
		||||
    seq length :> end
 | 
			
		||||
    n 0 n [ 2dup = ] [
 | 
			
		||||
        [ seq exchange ] [ [ 1 + ] bi@ ] 2bi
 | 
			
		||||
    n seq bounds-check length :> end
 | 
			
		||||
    0 n [ 2dup = ] [
 | 
			
		||||
        [ seq exchange-unsafe ] [ [ 1 + ] bi@ ] 2bi
 | 
			
		||||
        dup end = [ drop over ] when
 | 
			
		||||
        2over = [ -rot nip over ] when
 | 
			
		||||
    ] until 3drop ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue