1 ! Copyright (C) 2009 Maximilian Lupke.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: assocs assocs.extras kernel ranges sequences ;
8 : prefixes ( seq -- prefixes )
9 dup length [1..b] [ head ] with map ;
13 : abbrev ( seqs -- assoc )
15 swap [ dup prefixes rot push-at-each ] with each
18 : unique-abbrev ( seqs -- assoc )
19 abbrev [ nip length 1 = ] assoc-filter ;