1 ! Copyright (C) 2012 John Benediktsson
2 ! See http://factorcode.org/license.txt for BSD license
4 USING: arrays assocs assocs.private kernel sequences ;
8 : assoc-harvest ( assoc -- assoc' )
9 [ nip empty? not ] assoc-filter ; inline
11 : assoc-sift ( assoc -- assoc' )
12 [ nip ] assoc-filter ; inline
14 : deep-at ( assoc seq -- value/f )
15 [ swap at ] each ; inline
17 : zip-as ( keys values exemplar -- assoc )
19 [ 2array ] swap 2map-as
21 [ dup length ] dip new-assoc
22 [ [ set-at ] with-assoc 2each ] keep
25 : substitute! ( seq assoc -- seq )