]> gitweb.factorcode.org Git - factor.git/commitdiff
Adding more assoc protocol methods to linked-assocs, bugfixes
authorJames Cash <james.nvc@gmail.com>
Sat, 8 Nov 2008 17:21:32 +0000 (12:21 -0500)
committerJames Cash <james.nvc@gmail.com>
Tue, 11 Nov 2008 07:33:18 +0000 (02:33 -0500)
basis/linked-assocs/linked-assocs.factor

index ee29869dfddaab4dac22f920478232d8787a246a..215b414e4b91ed897b9c6386d4c743285676bde5 100644 (file)
@@ -10,12 +10,11 @@ TUPLE: linked-assoc assoc dlist ;
 
 M: linked-assoc assoc-size assoc>> assoc-size ;
 
-M: linked-assoc at* assoc>> at* tuck [ obj>> ] when second swap ;
+M: linked-assoc at* assoc>> at* tuck [ obj>> second ] when swap ;
 
 M: linked-assoc delete-at
     [ [ assoc>> ] [ dlist>> ] bi [ at ] dip '[ _ delete-node ] when* ]
-    [ assoc>> delete-at ]
-    2bi ;
+    [ assoc>> delete-at ] 2bi ;
 
 <PRIVATE
 : add-to-dlist ( value key lassoc -- node )
@@ -32,4 +31,11 @@ M: linked-assoc set-at
 M: linked-assoc >alist
     dlist>> dlist>seq ;
 
+M: linked-assoc clear-assoc
+    [ assoc>> clear-assoc ] [ dlist>> clear-deque ] bi ;
+
+M: linked-assoc clone 
+    [ assoc>> clone ] [ dlist>> clone ] bi
+    linked-assoc boa ;
+
 INSTANCE: linked-assoc assoc