]> gitweb.factorcode.org Git - factor.git/blobdiff - core/sequences/sequences.factor
rename math.statistics:cum-map to sequences:accumulate*
[factor.git] / core / sequences / sequences.factor
index 4962ac926320e157d94921cffd4ef03e02c5f628..cc5cb5aecbe686bcf0e36e6ced66f70421e0ef01 100644 (file)
@@ -442,6 +442,9 @@ PRIVATE>
 : (accumulate) ( seq identity quot -- identity seq quot )
     swapd [ curry keep ] curry ; inline
 
+: (accumulate*) ( seq identity quot -- identity seq quot )
+    swapd [ dup ] compose ; inline
+
 PRIVATE>
 
 : each ( ... seq quot: ( ... x -- ... ) -- ... )
@@ -480,6 +483,15 @@ PRIVATE>
 : accumulate! ( ... seq identity quot: ( ... prev elt -- ... next ) -- ... final seq )
     (accumulate) map! ; inline
 
+: accumulate*-as ( ... seq identity quot: ( ... prev elt -- ... next ) exemplar -- ... newseq )
+    [ (accumulate*) ] dip map-as nip ; inline
+
+: accumulate* ( ... seq identity quot: ( ... prev elt -- ... next ) -- ... newseq )
+    pick accumulate*-as ; inline
+
+: accumulate*! ( ... seq identity quot: ( ... prev elt -- ... next ) -- ... seq )
+    (accumulate*) map! nip ; inline
+
 : 2each ( ... seq1 seq2 quot: ( ... elt1 elt2 -- ... ) -- ... )
     (2each) each-integer ; inline