Fix short circuit usage in Project Euler solutions
							parent
							
								
									636c344eb0
								
							
						
					
					
						commit
						4d1d9b2087
					
				| 
						 | 
					@ -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>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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 ;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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? [
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue