Use tri instead of repeated keeps for PE solutions

db4
Aaron Schaefer 2008-02-09 19:54:31 -05:00
parent 5aca313896
commit 96853249a4
2 changed files with 6 additions and 6 deletions

View File

@ -1,7 +1,7 @@
! Copyright (c) 2008 Aaron Schaefer. ! Copyright (c) 2008 Aaron Schaefer.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: arrays combinators.lib kernel math math.ranges namespaces USING: arrays combinators.cleave combinators.lib kernel math math.ranges
project-euler.common sequences ; namespaces project-euler.common sequences ;
IN: project-euler.039 IN: project-euler.039
! http://projecteuler.net/index.php?section=problems&id=39 ! http://projecteuler.net/index.php?section=problems&id=39
@ -43,7 +43,7 @@ SYMBOL: p-count
: (count-perimeters) ( seq -- ) : (count-perimeters) ( seq -- )
dup sum max-p < [ dup sum max-p < [
dup sum adjust-p-count dup sum adjust-p-count
[ u-transform ] keep [ a-transform ] keep d-transform [ u-transform ] [ a-transform ] [ d-transform ] tri
[ (count-perimeters) ] 3apply [ (count-perimeters) ] 3apply
] [ ] [
drop drop

View File

@ -1,7 +1,7 @@
! Copyright (c) 2008 Aaron Schaefer. ! Copyright (c) 2008 Aaron Schaefer.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: arrays combinators.lib kernel math math.ranges namespaces USING: arrays combinators.cleave combinators.lib kernel math math.ranges
project-euler.common sequences ; namespaces project-euler.common sequences ;
IN: project-euler.075 IN: project-euler.075
! http://projecteuler.net/index.php?section=problems&id=75 ! http://projecteuler.net/index.php?section=problems&id=75
@ -56,7 +56,7 @@ SYMBOL: p-count
: (count-perimeters) ( seq -- ) : (count-perimeters) ( seq -- )
dup sum max-p < [ dup sum max-p < [
dup sum adjust-p-count dup sum adjust-p-count
[ u-transform ] keep [ a-transform ] keep d-transform [ u-transform ] [ a-transform ] [ d-transform ] tri
[ (count-perimeters) ] 3apply [ (count-perimeters) ] 3apply
] [ ] [
drop drop