{ V{ 0 4 16 36 64 } } [ 10 iota [ even? ] [ sq ] filter-map ] unit-test
{ { 2 6 10 14 18 } } [ 10 iota [ odd? ] [ 2 * ] { } filter-map-as ] unit-test
+
+{ 8 } [ 3 iota dup [ 1 + * ] 2map-sum ] unit-test
+{ 4 } [ "hello" "jello" [ = ] 2count ] unit-test
: filter-map ( ... seq filter-quot: ( ... elt -- ... ? ) map-quot: ( ... elt -- ... newelt ) -- ... newseq )
pick filter-map-as ; inline
+
+: 2map-sum ( ... seq1 seq2 quot: ( ... elt1 elt2 -- ... n ) -- ... n )
+ [ 0 ] 3dip [ dip + ] curry [ rot ] prepose 2each ; inline
+
+: 2count ( ... seq1 seq2 quot: ( ... elt1 elt2 -- ... ? ) -- ... n )
+ [ 1 0 ? ] compose 2map-sum ; inline