! Copyright (C) 2009 Maximilian Lupke. ! See http://factorcode.org/license.txt for BSD license. USING: arrays assocs fry kernel math.ranges sequences ; IN: sequences.abbrev assoc ; : assoc-merge ( assoc1 assoc2 -- assoc3 ) tuck '[ over _ at dup [ append ] [ drop ] if ] assoc-map assoc-union ; PRIVATE> : abbrev ( seqs -- assoc ) [ (abbrev) ] map H{ } [ assoc-merge ] reduce ; : unique-abbrev ( seqs -- assoc ) abbrev [ nip length 1 = ] assoc-filter ;