]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/042/042.factor
factor: trim using lists
[factor.git] / extra / project-euler / 042 / 042.factor
index 95b3062e954f9efd318a5e743629daec125946ca..224a47c4ec75ec23d423f420923adee47fc4b25a 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (c) 2008 Aaron Schaefer.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: ascii combinators.lib io.files kernel math math.functions namespaces
-    project-euler.common sequences splitting ;
+USING: ascii io.encodings.ascii io.files kernel make math math.functions
+project-euler.common sequences splitting ;
 IN: project-euler.042
 
 ! http://projecteuler.net/index.php?section=problems&id=42
@@ -30,12 +30,12 @@ IN: project-euler.042
 <PRIVATE
 
 : source-042 ( -- seq )
-    "extra/project-euler/042/words.txt" resource-path
-    file-contents [ quotable? ] subset "," split ;
+    "resource:extra/project-euler/042/words.txt"
+    ascii file-contents [ quotable? ] filter "," split ;
 
 : (triangle-upto) ( limit n -- )
     2dup nth-triangle > [
-        dup nth-triangle , 1+ (triangle-upto)
+        dup nth-triangle , 1 + (triangle-upto)
     ] [
         2drop
     ] if ;
@@ -50,7 +50,7 @@ PRIVATE>
     triangle-upto [ member? ] curry count ;
 
 ! [ euler042 ] 100 ave-time
-! 27 ms run / 1 ms GC ave time - 100 trials
+! 19 ms ave run time - 1.97 SD (100 trials)
 
 
 ! ALTERNATE SOLUTIONS
@@ -61,7 +61,7 @@ PRIVATE>
 <PRIVATE
 
 : triangle? ( n -- ? )
-    8 * 1+ sqrt 1- 2 / 1 mod zero? ;
+    8 * 1 + sqrt 1 - 2 / 1 mod zero? ;
 
 PRIVATE>
 
@@ -69,6 +69,6 @@ PRIVATE>
     source-042 [ alpha-value ] map [ triangle? ] count ;
 
 ! [ euler042a ] 100 ave-time
-! 25 ms run / 1 ms GC ave time - 100 trials
+! 21 ms ave run time - 2.2 SD (100 trials)
 
-MAIN: euler042a
+SOLUTION: euler042a