Fix short circuit usage in Project Euler solutions

db4
Aaron Schaefer 2008-11-06 01:41:24 -05:00
parent 636c344eb0
commit 4d1d9b2087
5 changed files with 12 additions and 13 deletions

View File

@ -58,7 +58,7 @@ PRIVATE>
<PRIVATE <PRIVATE
: worth-calculating? ( n -- ? ) : worth-calculating? ( n -- ? )
{ [ dup 1- 3 mod zero? ] [ dup 1- 3 / even? ] } 0&& nip ; 1- 3 { [ mod zero? ] [ / even? ] } 2&& ;
PRIVATE> PRIVATE>

View File

@ -27,7 +27,7 @@ IN: project-euler.021
: amicable? ( n -- ? ) : amicable? ( n -- ? )
dup sum-proper-divisors dup sum-proper-divisors
{ [ 2dup = not ] [ 2dup sum-proper-divisors = ] } 0&& 2nip ; { [ = not ] [ sum-proper-divisors = ] } 2&& ;
: euler021 ( -- answer ) : euler021 ( -- answer )
10000 [1,b] [ dup amicable? [ drop 0 ] unless ] sigma ; 10000 [1,b] [ dup amicable? [ drop 0 ] unless ] sigma ;

View File

@ -26,8 +26,7 @@ IN: project-euler.036
<PRIVATE <PRIVATE
: both-bases? ( n -- ? ) : both-bases? ( n -- ? )
{ [ dup palindrome? ] { [ palindrome? ] [ >bin dup reverse = ] } 1&& ;
[ dup >bin dup reverse = ] } 0&& nip ;
PRIVATE> PRIVATE>

View File

@ -40,14 +40,14 @@ IN: project-euler.043
: interesting? ( seq -- ? ) : interesting? ( seq -- ? )
{ {
[ 17 8 pick subseq-divisible? ] [ 17 8 rot subseq-divisible? ]
[ 13 7 pick subseq-divisible? ] [ 13 7 rot subseq-divisible? ]
[ 11 6 pick subseq-divisible? ] [ 11 6 rot subseq-divisible? ]
[ 7 5 pick subseq-divisible? ] [ 7 5 rot subseq-divisible? ]
[ 5 4 pick subseq-divisible? ] [ 5 4 rot subseq-divisible? ]
[ 3 3 pick subseq-divisible? ] [ 3 3 rot subseq-divisible? ]
[ 2 2 pick subseq-divisible? ] [ 2 2 rot subseq-divisible? ]
} 0&& nip ; } 1&& ;
PRIVATE> PRIVATE>

View File

@ -30,7 +30,7 @@ IN: project-euler.052
[ number>digits natural-sort ] map all-equal? ; [ number>digits natural-sort ] map all-equal? ;
: candidate? ( n -- ? ) : candidate? ( n -- ? )
{ [ dup odd? ] [ dup 3 mod zero? ] } 0&& nip ; { [ odd? ] [ 3 mod zero? ] } 1&& ;
: next-all-same ( x n -- n ) : next-all-same ( x n -- n )
dup candidate? [ dup candidate? [