From 0c030d70ea517ae0bf729a3d284b3e315c510ecd Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 25 Sep 2008 21:25:27 -0700 Subject: [PATCH] Moving enumerate to sequences-lib. --- extra/math/finance/finance-docs.factor | 4 ---- extra/math/finance/finance.factor | 8 +------- extra/sequences/lib/lib-docs.factor | 4 ++++ extra/sequences/lib/lib-tests.factor | 3 +++ extra/sequences/lib/lib.factor | 6 ++++++ 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/extra/math/finance/finance-docs.factor b/extra/math/finance/finance-docs.factor index 9094a5bff6..5024e83bff 100644 --- a/extra/math/finance/finance-docs.factor +++ b/extra/math/finance/finance-docs.factor @@ -5,10 +5,6 @@ USING: help.markup help.syntax ; IN: math.finance -HELP: enumerate -{ $values { "seq" "a sequence" } { "newseq" "a sequence" } } -{ $description "Returns a new sequence where each element is an array of { value, index }" } ; - HELP: sma { $values { "seq" "a sequence" } { "n" "number of periods" } { "newseq" "a sequence" } } { $description "Returns the Simple Moving Average with the specified periodicity." } ; diff --git a/extra/math/finance/finance.factor b/extra/math/finance/finance.factor index 8d33c1eb7d..db300a3b70 100644 --- a/extra/math/finance/finance.factor +++ b/extra/math/finance/finance.factor @@ -6,9 +6,6 @@ math math.functions math.statistics math.vectors ; IN: math.finance -: enumerate ( seq -- newseq ) - >alist ; - : ema ( seq n -- newseq ) - a swap first-rest swap [ [ dup ] 2dip swap rot weighted ] accumulate 2nip ; + a swap unclip [ [ dup ] 2dip swap rot weighted ] accumulate 2nip ; : sma ( seq n -- newseq ) clump [ mean ] map ; diff --git a/extra/sequences/lib/lib-docs.factor b/extra/sequences/lib/lib-docs.factor index 197d092aa2..e279230b1b 100755 --- a/extra/sequences/lib/lib-docs.factor +++ b/extra/sequences/lib/lib-docs.factor @@ -23,3 +23,7 @@ HELP: randomize { $values { "seq" sequence } { "seq'" sequence } } { $description "Shuffle the elements in the sequence randomly, returning the new sequence." } ; +HELP: enumerate +{ $values { "seq" sequence } { "seq'" sequence } } +{ $description "Returns a new sequence where each element is an array of { index, value }" } ; + diff --git a/extra/sequences/lib/lib-tests.factor b/extra/sequences/lib/lib-tests.factor index 18c9d7f735..a44d41d98a 100755 --- a/extra/sequences/lib/lib-tests.factor +++ b/extra/sequences/lib/lib-tests.factor @@ -60,3 +60,6 @@ IN: sequences.lib.tests [ 1 2 { 3 4 } [ + + drop ] 2 each-withn ] must-infer { 13 } [ 1 2 { 3 4 } [ + + ] 2 each-withn + ] unit-test [ { 910 911 912 } ] [ 10 900 3 [ + + ] map-with2 ] unit-test + +[ { { 0 1 } { 1 2 } { 2 3 } } ] [ { 1 2 3 } enumerate ] unit-test + diff --git a/extra/sequences/lib/lib.factor b/extra/sequences/lib/lib.factor index 85cc82eb39..63512781f0 100755 --- a/extra/sequences/lib/lib.factor +++ b/extra/sequences/lib/lib.factor @@ -168,3 +168,9 @@ USE: random : randomize ( seq -- seq' ) dup length 1 (a,b] [ dup random pick exchange ] each ; +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +: enumerate ( seq -- seq' ) + >alist ; + +