]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.extras: adding 3each-from and 3map-reduce.
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 25 Oct 2017 00:25:26 +0000 (17:25 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 25 Oct 2017 00:25:26 +0000 (17:25 -0700)
extra/sequences/extras/extras.factor

index d8e23af43e7d7c43efcf4e070ae22593f6930487..c6943aa0f696752a9b92d229d5954fad558f9578 100644 (file)
@@ -293,6 +293,14 @@ PRIVATE>
 : 2count ( ... seq1 seq2 quot: ( ... elt1 elt2 -- ... ? ) -- ... n )
     [ 1 0 ? ] compose 2map-sum ; inline
 
+: 3each-from
+    ( ... seq1 seq2 seq3 quot: ( ... elt1 elt2 elt3 -- ... ) i -- ... )
+    [ (3each) ] dip -rot (each-integer) ; inline
+
+: 3map-reduce
+    ( ..a seq1 seq2 seq3 map-quot: ( ..a elt1 elt2 elt3 -- ..b intermediate ) reduce-quot: ( ..b prev intermediate -- ..a next ) -- ..a result )
+    [ [ [ [ first ] tri@ ] 3keep ] dip [ 3dip ] keep ] dip compose 1 3each-from ; inline
+
 : round-robin ( seq -- newseq )
     [ { } ] [
         [ longest length <iota> ] keep