]> gitweb.factorcode.org Git - factor.git/commitdiff
Moving enumerate to sequences-lib.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 26 Sep 2008 04:25:27 +0000 (21:25 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 26 Sep 2008 04:25:27 +0000 (21:25 -0700)
extra/math/finance/finance-docs.factor
extra/math/finance/finance.factor
extra/sequences/lib/lib-docs.factor
extra/sequences/lib/lib-tests.factor
extra/sequences/lib/lib.factor

index 9094a5bff6e3607486dd7ebd376b50b66e84754e..5024e83bffdf3296afc7f2c102560905003dff76 100644 (file)
@@ -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." } ;
index 8d33c1eb7df4114d4ab32595f4e1547de75816d2..db300a3b70b709fc207eefebce4cbea14d856f4e 100644 (file)
@@ -6,9 +6,6 @@ math math.functions math.statistics math.vectors ;
 
 IN: math.finance
 
-: enumerate ( seq -- newseq )
-    <enum> >alist ;
-
 <PRIVATE
 
 : weighted ( x y a -- z ) 
@@ -17,13 +14,10 @@ IN: math.finance
 : a ( n -- a ) 
     1 + 2 swap / ;
 
-: first-rest ( seq -- first rest )
-    [ first ] keep 1 tail-slice ;
-
 PRIVATE>
 
 : 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 ;
index 197d092aa2991970f5e8c37d119d664954b2d2ca..e279230b1bcfa56f23c309fff4e9a5790bc3db32 100755 (executable)
@@ -23,3 +23,7 @@ HELP: randomize
 { $values { "seq" sequence } { "seq'" sequence } }\r
 { $description "Shuffle the elements in the sequence randomly, returning the new sequence." } ;\r
 \r
+HELP: enumerate\r
+{ $values { "seq" sequence } { "seq'" sequence } }\r
+{ $description "Returns a new sequence where each element is an array of { index, value }" } ;\r
+\r
index 18c9d7f7358fbd3405ca794bf12054b299422887..a44d41d98a6a061c1c3c31ee3841d7ee4e441daa 100755 (executable)
@@ -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
+
index 85cc82eb3962329a0d5479d4f6e4d8d0124730e0..63512781f01524b080a690f8363621a941125156 100755 (executable)
@@ -168,3 +168,9 @@ USE: random
 : randomize ( seq -- seq' )
     dup length 1 (a,b] [ dup random pick exchange ] each ;
 
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: enumerate ( seq -- seq' )
+    <enum> >alist ;
+
+