[ nip in>> ] [ out>> append ] 2bi parts boa ;
: intersection ( seq -- elts/f )
- [ f ] [ unclip [ intersect ] reduce ] if-empty ;
+ [ f ] [ [ ] [ intersect ] map-reduce ] if-empty ;
: meaningful-integers ( partition table -- integers )
[ [ in>> ] [ out>> ] bi ] dip
: d-product ( v -- d ) 1 scalar [ d* ] reduce ;
-: d-sum ( v -- d ) unclip-slice [ d+ ] reduce ;
+: d-sum ( v -- d ) [ ] [ d+ ] map-reduce ;
-: d-infimum ( v -- d ) unclip-slice [ d-min ] reduce ;
+: d-infimum ( v -- d ) [ ] [ d-min ] map-reduce ;
-: d-supremum ( v -- d ) unclip-slice [ d-max ] reduce ;
+: d-supremum ( v -- d ) [ ] [ d-max ] map-reduce ;
\ d+ [ d- ] [ d- ] define-math-inverse
\ d- [ d+ ] [ d- ] define-math-inverse
[ [ (deref-aliases) ] bi-curry@ bi ] with2 assoc-map! ;
: merge-values ( seq -- assoc )
- reverse unclip [ assoc-union ] reduce ;
+ reverse [ ] [ assoc-union ] map-reduce ;
GENERIC: merge-value ( assoc value -- assoc' )
M: sequence merge-value merge-values merge-value ;
M: assoc merge-value over assoc-diff assoc-union! ;