24 lines
		
	
	
		
			581 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			581 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2012 John Benediktsson
 | 
						|
! See http://factorcode.org/license.txt for BSD license
 | 
						|
 | 
						|
USING: arrays assocs assocs.private kernel sequences ;
 | 
						|
 | 
						|
IN: assocs.extras
 | 
						|
 | 
						|
: assoc-harvest ( assoc -- assoc' )
 | 
						|
    [ nip empty? not ] assoc-filter ; inline
 | 
						|
 | 
						|
: deep-at ( assoc seq -- value/f )
 | 
						|
    [ swap at ] each ; inline
 | 
						|
 | 
						|
: zip-as ( keys values exemplar -- assoc )
 | 
						|
    dup sequence? [
 | 
						|
        [ 2array ] swap 2map-as
 | 
						|
    ] [
 | 
						|
        [ dup length ] dip new-assoc
 | 
						|
        [ [ set-at ] with-assoc 2each ] keep
 | 
						|
    ] if ; inline
 | 
						|
 | 
						|
: substitute! ( seq assoc -- seq )
 | 
						|
    substituter map! ;
 |