]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/benchmark/fib4/fib4.factor
factor: trim using lists
[factor.git] / extra / benchmark / fib4 / fib4.factor
index 7cf756e11f891bbb16845029f990e4fc2a03ba48..2822304d82cc28ad490fe41c6ac679f140c6d439 100644 (file)
@@ -1,22 +1,22 @@
-USING: math kernel debugger ;
+USING: accessors math kernel ;
 IN: benchmark.fib4
 
-TUPLE: box i ;
+TUPLE: box { i read-only } ;
 
 C: <box> box
 
 : tuple-fib ( m -- n )
-    dup box-i 1 <= [
+    dup i>> 1 <= [
         drop 1 <box>
     ] [
-        box-i 1- <box>
+        i>> 1 - <box>
         dup tuple-fib
         swap
-        box-i 1- <box>
+        i>> 1 - <box>
         tuple-fib
-        swap box-i swap box-i + <box>
-    ] if ;
+        swap i>> swap i>> + <box>
+    ] if ; inline recursive
 
-: fib-main ( -- ) T{ box f 34 } tuple-fib T{ box f 9227465 } assert= ;
+: fib4-benchmark ( -- ) T{ box f 34 } tuple-fib i>> 9227465 assert= ;
 
-MAIN: fib-main
+MAIN: fib4-benchmark