]> gitweb.factorcode.org Git - factor.git/commitdiff
simple-flat-file: add back string interning.
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 25 Jan 2017 04:04:20 +0000 (20:04 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 25 Jan 2017 04:04:20 +0000 (20:04 -0800)
basis/simple-flat-file/simple-flat-file.factor

index 793a3fd67a3fb3189e4b3af028f1ab2ff0762e26..17057c926757826975efb76781949b604e40ff02 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays ascii assocs biassocs interval-maps
-io.encodings.utf8 io.files kernel math.parser sequences
+io.encodings.utf8 io.files kernel math.parser sequences sets
 splitting ;
 IN: simple-flat-file
 
@@ -38,5 +38,11 @@ IN: simple-flat-file
 : expand-ranges ( ranges -- table )
     [ [ expand-range ] dip ] assoc-map <interval-map> ;
 
+: intern ( value values -- value' )
+    [ = ] with find nip ;
+
+: intern-values ( assoc -- assoc' )
+    dup values members [ intern ] curry assoc-map ;
+
 : load-interval-file ( filename -- table )
-    data expand-ranges ;
+    data intern-values expand-ranges ;