]> gitweb.factorcode.org Git - factor.git/commitdiff
project-euler.150: 20% faster.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 17 Oct 2011 04:21:07 +0000 (21:21 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 17 Oct 2011 04:21:07 +0000 (21:21 -0700)
extra/project-euler/150/150.factor

index 6e64d6ad3080a491121c003aca5ba5bc5f28f32e..2581e907b5c934a290949fc6c2d292a25136ace1 100644 (file)
@@ -36,11 +36,8 @@ IN: project-euler.150
 : partial-sums ( seq -- sums )
     0 [ + ] accumulate swap suffix ; inline
 
-: (partial-sum-infimum) ( inf sum elt -- inf sum )
-    + [ min ] keep ; inline
-
-: partial-sum-infimum ( seq -- seq )
-    0 0 rot [ (partial-sum-infimum) ] each drop ; inline
+: partial-sum-infimum ( seq quot -- seq )
+    [ 0 0 ] 2dip [ + [ min ] keep ] compose each drop ; inline
 
 : map-infimum ( seq quot -- min )
     [ min ] compose 0 swap reduce ; inline
@@ -61,7 +58,7 @@ IN: project-euler.150
                 x z + table nth-unsafe
                 [ y z + 1 + swap nth-unsafe ]
                 [ y        swap nth-unsafe ] bi -
-            ] map partial-sum-infimum
+            ] partial-sum-infimum
         ] map-infimum
     ] map-infimum ;