Switch zero? to 0 = where appropriate in PE solutions

db4
Aaron Schaefer 2008-11-09 22:10:42 -05:00
parent e813e1df18
commit 61db7d846b
7 changed files with 10 additions and 10 deletions

View File

@ -46,7 +46,7 @@ PRIVATE>
: euler001b ( -- answer )
1000 [ dup 5 mod swap 3 mod [ zero? ] either? ] filter sum ;
1000 [ [ 5 mod ] [ 3 mod ] bi [ 0 = ] either? ] filter sum ;
! [ euler001b ] 100 ave-time
! 0 ms run / 0 ms GC ave time - 100 trials

View File

@ -21,7 +21,7 @@ IN: project-euler.004
<PRIVATE
: source-004 ( -- seq )
100 999 [a,b] [ 10 mod zero? not ] filter ;
100 999 [a,b] [ 10 mod 0 = not ] filter ;
: max-palindrome ( seq -- palindrome )
natural-sort [ palindrome? ] find-last nip ;

View File

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

View File

@ -33,7 +33,7 @@ IN: project-euler.019
: euler019 ( -- answer )
1901 2000 [a,b] [
12 [1,b] [ 1 zeller-congruence ] with map
] map concat [ zero? ] count ;
] map concat [ 0 = ] count ;
! [ euler019 ] 100 ave-time
! 1 ms ave run time - 0.51 SD (100 trials)
@ -58,7 +58,7 @@ IN: project-euler.019
PRIVATE>
: euler019a ( -- answer )
end-date start-date first-days [ zero? ] count ;
end-date start-date first-days [ 0 = ] count ;
! [ euler019a ] 100 ave-time
! 17 ms ave run time - 2.13 SD (100 trials)

View File

@ -66,7 +66,7 @@ SYMBOL: sieve
0 <repetition> >array sieve set ;
: is-prime? ( index -- ? )
sieve get nth zero? ;
sieve get nth 0 = ;
: multiples ( n -- seq )
sieve get length 1- over <range> ;

View File

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

View File

@ -42,7 +42,7 @@ IN: project-euler.common
: (sum-divisors) ( n -- sum )
dup sqrt >fixnum [1,b] [
[ 2dup mod zero? [ 2dup / + , ] [ drop ] if ] each
[ 2dup mod 0 = [ 2dup / + , ] [ drop ] if ] each
dup perfect-square? [ sqrt >fixnum neg , ] [ drop ] if
] { } make sum ;
@ -68,7 +68,7 @@ PRIVATE>
] if ;
: number>digits ( n -- seq )
[ dup zero? not ] [ 10 /mod ] [ ] produce reverse nip ;
[ dup 0 = not ] [ 10 /mod ] [ ] produce reverse nip ;
: nth-triangle ( n -- n )
dup 1+ * 2 / ;
@ -112,7 +112,7 @@ PRIVATE>
factor-2s dup [ 1+ ]
[ perfect-square? -1 0 ? ]
[ dup sqrt >fixnum [1,b] ] tri* [
dupd mod zero? [ [ 2 + ] dip ] when
dupd mod 0 = [ [ 2 + ] dip ] when
] each drop * ;
! These transforms are for generating primitive Pythagorean triples