]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://factorcode.org/git/factor
authorAaron Schaefer <aaron@elasticdog.com>
Fri, 17 Apr 2009 19:56:14 +0000 (15:56 -0400)
committerAaron Schaefer <aaron@elasticdog.com>
Fri, 17 Apr 2009 19:56:14 +0000 (15:56 -0400)
extra/poker/poker.factor
extra/project-euler/069/069.factor

index 2a7fe73762e6fdcd501b20d6fccc0b10b29a66be..e8e9fa23c5e9cf25ded89c01c287ffe5c35eca2b 100644 (file)
@@ -117,9 +117,6 @@ CONSTANT: VALUE_STR { "" "Straight Flush" "Four of a Kind" "Full House" "Flush"
 : lookup ( cards table -- value )
     [ rank-bits ] dip nth ;
 
-: unique5? ( cards -- ? )
-    unique5-table lookup 0 > ;
-
 : map-product ( seq quot -- n )
     [ 1 ] 2dip [ dip * ] curry [ swap ] prepose each ; inline
 
@@ -138,11 +135,11 @@ CONSTANT: VALUE_STR { "" "Straight Flush" "Four of a Kind" "Full House" "Flush"
     bitxor values-table nth ;
 
 : hand-value ( cards -- value )
-    {
-        { [ dup flush?   ] [ flushes-table lookup ] }
-        { [ dup unique5? ] [ unique5-table lookup ] }
-        [ prime-bits perfect-hash-find ]
-    } cond ;
+    dup flush? [ flushes-table lookup ] [
+        dup unique5-table lookup dup 0 > [ nip ] [
+            drop prime-bits perfect-hash-find
+        ] if
+    ] if ;
 
 : >card-rank ( card -- str )
     -8 shift HEX: F bitand RANK_STR nth ;
index eae1d82ece729175c6e9bb45af93e313362efa5c..3a59d665224ba24c13d67a1a6f9169bd6f01b68c 100644 (file)
@@ -69,12 +69,9 @@ PRIVATE>
         [ nth-prime primes-upto ]
     } cond product ;
 
-: (primorial-upto) ( count limit -- m )
-    '[ dup primorial _ <= ] [ 1+ dup primorial ] produce
-    nip penultimate ;
-
 : primorial-upto ( limit -- m )
-    1 swap (primorial-upto) ;
+    1 swap '[ dup primorial _ <= ] [ 1+ dup primorial ] produce
+    nip penultimate ;
 
 PRIVATE>