]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/073/073.factor
factor: trim using lists
[factor.git] / extra / project-euler / 073 / 073.factor
index c7e88057226c21b4a632361fb78a65be8dc8c93a..658b141cb9d0ce77d2b1a5a2bdadee7207949d96 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (c) 2008 Aaron Schaefer.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel locals make math project-euler.common sequences ;
+USING: kernel math project-euler.common ;
 IN: project-euler.073
 
 ! http://projecteuler.net/index.php?section=problems&id=73
@@ -32,19 +32,18 @@ IN: project-euler.073
 
 <PRIVATE
 
-:: (euler073) ( limit lo hi -- )
-    [let | m [ lo hi mediant ] |
-        m denominator limit <= [
-            m ,
-            limit lo m (euler073)
-            limit m hi (euler073)
-        ] when
-    ] ;
+:: (euler073) ( counter limit lo hi -- counter' )
+    lo hi mediant :> m
+    m denominator limit <= [
+        counter 1 +
+        limit lo m (euler073)
+        limit m hi (euler073)
+    ] [ counter ] if ;
 
 PRIVATE>
 
 : euler073 ( -- answer )
-    [ 10000 1/3 1/2 (euler073) ] { } make length ;
+    0 10000 1/3 1/2 (euler073) ;
 
 ! [ euler073 ] 10 ave-time
 ! 20506 ms ave run time - 937.07 SD (10 trials)