From 9610a498818b1c38d37e67309cab66233281cce1 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Wed, 14 Feb 2018 19:46:26 -0800 Subject: [PATCH] project-euler.186: simpler with if instead of 2unless?. Not sure why I'm still working on this. --- extra/project-euler/186/186.factor | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/extra/project-euler/186/186.factor b/extra/project-euler/186/186.factor index 0a6179acee..18d3bf1dd2 100644 --- a/extra/project-euler/186/186.factor +++ b/extra/project-euler/186/186.factor @@ -47,16 +47,14 @@ IN: project-euler.186 : next ( lag -- n ) [ [ first dup ] [ 31 swap nth ] bi + 1000000 rem ] keep circular-push ; -: 2unless? ( x y ?quot quot -- ) - [ 2keep rot [ 2drop ] ] dip if ; inline - -: (p186) ( generator counter unionfind -- counter ) +: (euler186) ( generator counter unionfind -- counter ) 524287 over equiv-set-size 990000 < [ pick [ next ] [ next ] bi - [ = ] [ - pick equate - [ 1 + ] dip - ] 2unless? (p186) + 2dup = [ + 2drop + ] [ + pick equate [ 1 + ] dip + ] if (euler186) ] [ drop nip ] if ; @@ -65,7 +63,7 @@ IN: project-euler.186 [ [ add-atom ] curry each ] keep ; : euler186 ( -- n ) - 0 1000000 (p186) ; + 0 1000000 (euler186) ; ! [ euler186 ] 10 ave-time ! 18572 ms ave run time - 796.87 SD (10 trials)