From 4d1d9b2087b9fb94f8db755f3b1cdf0325dfee55 Mon Sep 17 00:00:00 2001 From: Aaron Schaefer Date: Thu, 6 Nov 2008 01:41:24 -0500 Subject: [PATCH] Fix short circuit usage in Project Euler solutions --- extra/project-euler/014/014.factor | 2 +- extra/project-euler/021/021.factor | 2 +- extra/project-euler/036/036.factor | 3 +-- extra/project-euler/043/043.factor | 16 ++++++++-------- extra/project-euler/052/052.factor | 2 +- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/extra/project-euler/014/014.factor b/extra/project-euler/014/014.factor index 93ed0c7754..3b812cf242 100644 --- a/extra/project-euler/014/014.factor +++ b/extra/project-euler/014/014.factor @@ -58,7 +58,7 @@ PRIVATE> diff --git a/extra/project-euler/021/021.factor b/extra/project-euler/021/021.factor index 2e2f6a6453..55060a7c71 100644 --- a/extra/project-euler/021/021.factor +++ b/extra/project-euler/021/021.factor @@ -27,7 +27,7 @@ IN: project-euler.021 : amicable? ( n -- ? ) dup sum-proper-divisors - { [ 2dup = not ] [ 2dup sum-proper-divisors = ] } 0&& 2nip ; + { [ = not ] [ sum-proper-divisors = ] } 2&& ; : euler021 ( -- answer ) 10000 [1,b] [ dup amicable? [ drop 0 ] unless ] sigma ; diff --git a/extra/project-euler/036/036.factor b/extra/project-euler/036/036.factor index 02d9372a8b..f5afeceb21 100644 --- a/extra/project-euler/036/036.factor +++ b/extra/project-euler/036/036.factor @@ -26,8 +26,7 @@ IN: project-euler.036 bin dup reverse = ] } 0&& nip ; + { [ palindrome? ] [ >bin dup reverse = ] } 1&& ; PRIVATE> diff --git a/extra/project-euler/043/043.factor b/extra/project-euler/043/043.factor index 28dc0b8bd6..268a6becfb 100644 --- a/extra/project-euler/043/043.factor +++ b/extra/project-euler/043/043.factor @@ -40,14 +40,14 @@ IN: project-euler.043 : interesting? ( seq -- ? ) { - [ 17 8 pick subseq-divisible? ] - [ 13 7 pick subseq-divisible? ] - [ 11 6 pick subseq-divisible? ] - [ 7 5 pick subseq-divisible? ] - [ 5 4 pick subseq-divisible? ] - [ 3 3 pick subseq-divisible? ] - [ 2 2 pick subseq-divisible? ] - } 0&& nip ; + [ 17 8 rot subseq-divisible? ] + [ 13 7 rot subseq-divisible? ] + [ 11 6 rot subseq-divisible? ] + [ 7 5 rot subseq-divisible? ] + [ 5 4 rot subseq-divisible? ] + [ 3 3 rot subseq-divisible? ] + [ 2 2 rot subseq-divisible? ] + } 1&& ; PRIVATE> diff --git a/extra/project-euler/052/052.factor b/extra/project-euler/052/052.factor index cfbb718200..5362a6e9b0 100644 --- a/extra/project-euler/052/052.factor +++ b/extra/project-euler/052/052.factor @@ -30,7 +30,7 @@ IN: project-euler.052 [ number>digits natural-sort ] map all-equal? ; : candidate? ( n -- ? ) - { [ dup odd? ] [ dup 3 mod zero? ] } 0&& nip ; + { [ odd? ] [ 3 mod zero? ] } 1&& ; : next-all-same ( x n -- n ) dup candidate? [