24 lines
		
	
	
		
			629 B
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			629 B
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								! Copyright (C) 2011 John Benediktsson
							 | 
						||
| 
								 | 
							
								! See http://factorcode.org/license.txt for BSD license
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								USING: combinators command-line io kernel math.order math.parser
							 | 
						||
| 
								 | 
							
								math.ranges namespaces sequences ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								IN: tools.seq
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: usage ( -- )
							 | 
						||
| 
								 | 
							
								    "Usage: seq [first [incr]] last" print ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: seq ( a step b -- )
							 | 
						||
| 
								 | 
							
								    swap <range> [ number>string print ] each ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: run-seq ( -- )
							 | 
						||
| 
								 | 
							
								    command-line get dup length {
							 | 
						||
| 
								 | 
							
								        { 1 [ first string>number [ 1 1 ] dip seq ] }
							 | 
						||
| 
								 | 
							
								        { 2 [ first2 [ string>number ] bi@ 2dup before? 1 -1 ? swap seq ] }
							 | 
						||
| 
								 | 
							
								        { 3 [ first3 [ string>number ] tri@ seq ] }
							 | 
						||
| 
								 | 
							
								        [ 2drop usage ]
							 | 
						||
| 
								 | 
							
								    } case ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								MAIN: run-seq
							 |