From 51530700f406f2effe8ff1f6cde953a10d7a0665 Mon Sep 17 00:00:00 2001 From: Aaron Schaefer Date: Wed, 7 Jan 2009 18:47:32 -0500 Subject: [PATCH] Add number-length word and clean cartesian-product --- extra/project-euler/common/common.factor | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/extra/project-euler/common/common.factor b/extra/project-euler/common/common.factor index 1a57a91e5e..49eb730632 100644 --- a/extra/project-euler/common/common.factor +++ b/extra/project-euler/common/common.factor @@ -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 / ;