]> gitweb.factorcode.org Git - factor.git/commitdiff
Add number-length word and clean cartesian-product
authorAaron Schaefer <aaron@elasticdog.com>
Wed, 7 Jan 2009 23:47:32 +0000 (18:47 -0500)
committerAaron Schaefer <aaron@elasticdog.com>
Wed, 7 Jan 2009 23:47:32 +0000 (18:47 -0500)
extra/project-euler/common/common.factor

index 1a57a91e5eca093e617558b16ede89e1e6b2a95d..49eb730632ba868c5ec75dd7c742864a2b478d74 100644 (file)
@@ -56,7 +56,7 @@ PRIVATE>
     >lower [ CHAR: a - 1+ ] sigma ;
 
 : cartesian-product ( seq1 seq2 -- seq1xseq2 )
-    swap [ swap [ 2array ] with map ] with map concat ;
+    [ [ 2array ] with map ] curry map concat ;
 
 : log10 ( m -- n )
     log 10 log / ;
@@ -74,6 +74,9 @@ PRIVATE>
 : number>digits ( n -- seq )
     [ dup 0 = not ] [ 10 /mod ] [ ] produce reverse nip ;
 
+: number-length ( n -- m )
+    log10 floor 1+ >integer ;
+
 : nth-triangle ( n -- n )
     dup 1+ * 2 / ;