]> gitweb.factorcode.org Git - factor.git/blob - extra/sequences/abbrev/abbrev.factor
factor: Move math.ranges => ranges.
[factor.git] / extra / sequences / abbrev / abbrev.factor
1 ! Copyright (C) 2009 Maximilian Lupke.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: assocs kernel ranges sequences ;
4 IN: sequences.abbrev
5
6 <PRIVATE
7
8 : prefixes ( seq -- prefixes )
9     dup length [1..b] [ head ] with map ;
10
11 PRIVATE>
12
13 : abbrev ( seqs -- assoc )
14     H{ } clone [
15         '[ dup prefixes [ _ push-at ] with each ] each
16     ] keep ;
17
18 : unique-abbrev ( seqs -- assoc )
19     abbrev [ nip length 1 = ] assoc-filter ;