Switch zero? to 0 = where appropriate in PE solutions
parent
e813e1df18
commit
61db7d846b
|
@ -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
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -58,7 +58,7 @@ PRIVATE>
|
|||
<PRIVATE
|
||||
|
||||
: worth-calculating? ( n -- ? )
|
||||
1- 3 { [ mod zero? ] [ / even? ] } 2&& ;
|
||||
1- 3 { [ mod 0 = ] [ / even? ] } 2&& ;
|
||||
|
||||
PRIVATE>
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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> ;
|
||||
|
|
|
@ -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? [
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue