]> gitweb.factorcode.org Git - factor.git/blob - extra/benchmark/fib4/fib4.factor
Fixing everything for mandatory stack effects
[factor.git] / extra / benchmark / fib4 / fib4.factor
1 USING: math kernel debugger ;
2 IN: benchmark.fib4
3
4 TUPLE: box i ;
5
6 C: <box> box
7
8 : tuple-fib ( m -- n )
9     dup box-i 1 <= [
10         drop 1 <box>
11     ] [
12         box-i 1- <box>
13         dup tuple-fib
14         swap
15         box-i 1- <box>
16         tuple-fib
17         swap box-i swap box-i + <box>
18     ] if ;
19
20 : fib-main ( -- ) T{ box f 34 } tuple-fib T{ box f 9227465 } assert= ;
21
22 MAIN: fib-main