39 lines
		
	
	
		
			715 B
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			39 lines
		
	
	
		
			715 B
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
| IN: benchmark.recursive
 | |
| USING: math kernel hints prettyprint io ;
 | |
| 
 | |
| : fib ( m -- n )
 | |
|     dup 2 < [ drop 1 ] [ dup 1 - fib swap 2 - fib + ] if ;
 | |
| 
 | |
| : ack ( m n -- x )
 | |
|     over zero? [
 | |
|         nip 1+
 | |
|     ] [
 | |
|         dup zero? [
 | |
|             drop 1- 1 ack
 | |
|         ] [
 | |
|             dupd 1- ack >r 1- r> ack
 | |
|         ] if
 | |
|     ] if ;
 | |
| 
 | |
| : tak ( x y z -- t )
 | |
|     2over swap < [
 | |
|         [ rot 1- -rot tak ] 3keep
 | |
|         [ -rot 1- -rot tak ] 3keep
 | |
|         1- -rot tak
 | |
|         tak
 | |
|     ] [
 | |
|         2nip
 | |
|     ] if ;
 | |
| 
 | |
| : recursive ( n -- )
 | |
|     3 over ack . flush
 | |
|     dup 27.0 + fib . flush
 | |
|     1-
 | |
|     dup 3 * over 2 * rot tak . flush
 | |
|     3 fib . flush
 | |
|     3.0 2.0 1.0 tak . flush ;
 | |
| 
 | |
| : recursive-main 11 recursive ;
 | |
| 
 | |
| MAIN: recursive-main
 |