]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/039/039.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / extra / project-euler / 039 / 039.factor
old mode 100644 (file)
new mode 100755 (executable)
index 67578dc..1ad163d
@@ -1,7 +1,7 @@
 ! Copyright (c) 2008 Aaron Schaefer.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: arrays combinators.lib kernel math math.ranges namespaces
-    project-euler.common sequences ;
+USING: arrays kernel math math.ranges
+    namespaces project-euler.common sequences ;
 IN: project-euler.039
 
 ! http://projecteuler.net/index.php?section=problems&id=39
@@ -37,14 +37,14 @@ SYMBOL: p-count
     p-count get length ;
 
 : adjust-p-count ( n -- )
-    max-p 1- over <range> p-count get
-    [ [ 1+ ] change-nth ] curry each ;
+    max-p 1 - over <range> p-count get
+    [ [ 1 + ] change-nth ] curry each ;
 
 : (count-perimeters) ( seq -- )
     dup sum max-p < [
         dup sum adjust-p-count
-        [ u-transform ] keep [ a-transform ] keep d-transform
-        [ (count-perimeters) ] 3apply
+        [ u-transform ] [ a-transform ] [ d-transform ] tri
+        [ (count-perimeters) ] tri@
     ] [
         drop
     ] if ;
@@ -60,6 +60,6 @@ PRIVATE>
     ] with-scope ;
 
 ! [ euler039 ] 100 ave-time
-! 2 ms run / 0 ms GC ave time - 100 trials
+! 1 ms ave run time - 0.37 SD (100 trials)
 
-MAIN: euler039
+SOLUTION: euler039