! Copyright (C) 2012 John Benediktsson, Doug Coleman
! See http://factorcode.org/license.txt for BSD license
USING: arrays assocs assocs.private fry generalizations kernel
-math sequences ;
+math math.statistics sequences sequences.extras ;
IN: assocs.extras
: deep-at ( assoc seq -- value/f )
: flatten-values ( assoc -- assoc' )
dup any-multi-value? [ expand-values-set-at flatten-values ] when ;
+
+: intersect-keys ( assoc seq -- elts )
+ [ of ] with map-zip sift-values ; inline
+
+: values-of ( assoc seq -- elts )
+ [ of ] with map sift ; inline
+
+: counts ( seq elts -- counts )
+ [ histogram ] dip intersect-keys ;
\ No newline at end of file