[q-lang-cvs] q/stdlib dict.q,1.7,1.8
Brought to you by:
agraef
From: Albert G. <ag...@us...> - 2008-02-21 09:17:32
|
Update of /cvsroot/q-lang/q/stdlib In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv28395 Modified Files: dict.q Log Message: cosmetic changes Index: dict.q =================================================================== RCS file: /cvsroot/q-lang/q/stdlib/dict.q,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** dict.q 21 Feb 2008 09:03:07 -0000 1.7 --- dict.q 21 Feb 2008 09:17:27 -0000 1.8 *************** *** 283,289 **** emptydict = nil; ! dict Members:List = foldl insert emptydict Members; ! mkdict Val Keys:List = dict (zip Keys (mklist Val (#Keys))); #nil = 0; --- 283,289 ---- emptydict = nil; ! dict XYs:List = foldl insert emptydict XYs; ! mkdict Y Xs:List = dict (zip Xs (mklist Y (#Xs))); #nil = 0; *************** *** 299,326 **** D1:Dict <> D2:Dict = members D1 <> members D2; ! (bin K V _ L R)!Key = L!Key if Key < K; ! = R!Key if Key > K; ! = V; member nil _ = false; ! member (bin K _ _ L R) Key ! = member L Key if K > Key; ! = member R Key if K < Key; ! = true if K = Key; ! members nil = []; ! members (bin Key Val _ L R) = members L ++ [(Key, Val) | members R]; keys nil = []; ! keys (bin Key _ _ L R) = keys L ++ [Key | keys R]; vals nil = []; ! vals (bin _ Val _ L R) = vals L ++ [Val | vals R]; ! last (bin Key Val _ _ nil) = (Key, Val); ! last (bin _ _ _ _ R) = last R; ! first (bin Key Val _ nil _) = (Key, Val); ! first (bin _ _ _ L _) = first L; ! insert D:Dict (Key, Val) = fst (inserta D Key Val); update D:Dict KV = insert D KV; --- 299,325 ---- D1:Dict <> D2:Dict = members D1 <> members D2; ! (bin X Y _ D1 D2)!X1 = D1!X1 if X1 < X; ! = D2!X1 if X1 > X; ! = Y; member nil _ = false; ! member (bin X _ _ D1 D2) X1 = member D1 X1 if X > X1; ! = member D2 X1 if X < X1; ! = true if X = X1; ! members nil = []; ! members (bin X Y _ D1 D2) = members D1 ++ [(X,Y)|members D2]; keys nil = []; ! keys (bin X _ _ D1 D2) = keys D1 ++ [X|keys D2]; vals nil = []; ! vals (bin _ Y _ D1 D2) = vals D1 ++ [Y|vals D2]; ! last (bin X Y _ _ nil) = (X,Y); ! last (bin _ _ _ _ D2) = last D2; ! first (bin X Y _ nil _) = (X,Y); ! first (bin _ _ _ D1 _) = first D1; ! insert D:Dict (X,Y) = fst (inserta D X Y); update D:Dict KV = insert D KV; |