From 49193397211e6d4f1a8d38a818121aa84889abc2 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sun, 16 Oct 2011 21:21:07 -0700 Subject: [PATCH] project-euler.150: 20% faster. --- extra/project-euler/150/150.factor | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/extra/project-euler/150/150.factor b/extra/project-euler/150/150.factor index 6e64d6ad30..2581e907b5 100644 --- a/extra/project-euler/150/150.factor +++ b/extra/project-euler/150/150.factor @@ -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 ;