]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/digraphs/digraphs.factor
factor: trim using lists
[factor.git] / extra / digraphs / digraphs.factor
old mode 100755 (executable)
new mode 100644 (file)
index 5ccc0d5..38d934b
@@ -1,6 +1,6 @@
 ! Copyright (C) 2008 Alex Chapman
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors assocs hashtables hashtables.private kernel sequences vectors ;
+USING: accessors assocs hashtables hashtables.private kernel sequences ;
 IN: digraphs
 
 TUPLE: digraph < hashtable ;
@@ -21,10 +21,10 @@ TUPLE: vertex value edges ;
 
 : @edges ( from to digraph -- to edges ) swapd at edges>> ;
 : add-edge ( from to digraph -- ) @edges push ;
-: delete-edge ( from to digraph -- ) @edges delete ;
+: delete-edge ( from to digraph -- ) @edges remove! drop ;
 
 : delete-to-edges ( to digraph -- )
-    [ nip dupd edges>> delete ] assoc-each drop ;
+    [ nip dupd edges>> remove! drop ] assoc-each drop ;
 
 : delete-vertex ( key digraph -- )
     2dup delete-at delete-to-edges ;
@@ -44,7 +44,7 @@ DEFER: (topological-sort)
     ] if ;
 
 : topological-sort ( digraph -- seq )
-    dup clone V{ } clone spin
+    [ V{ } clone ] dip [ clone ] keep
     [ drop (topological-sort) ] assoc-each drop reverse ;
 
 : topological-sorted-values ( digraph -- seq )