[Gd-chatter] r10760 - trunk/fundev/sources/lib/collection-extensions
hannes at gwydiondylan.org
hannes at gwydiondylan.org
Wed May 31 02:26:08 CEST 2006
Author: hannes
Date: Tue May 30 22:09:21 2006
New Revision: 10760
Modified:
trunk/fundev/sources/lib/collection-extensions/sequence-diff.dylan
Log:
Job: fd
fix diff algorithm (didn't work if only added/removed something at the end of the sequence)
sequence-diff(#("foo", "bar", "boo"), #("foo", "bar", "boo", "baz"))
-> should be ported to src/common/collection-extensions for gwydion...
Modified: trunk/fundev/sources/lib/collection-extensions/sequence-diff.dylan
==============================================================================
--- trunk/fundev/sources/lib/collection-extensions/sequence-diff.dylan (original)
+++ trunk/fundev/sources/lib/collection-extensions/sequence-diff.dylan Tue May 30 22:09:21 2006
@@ -84,7 +84,16 @@
if (lower > upper) // sequences are identical
return(#());
end if;
-
+ if (lower = 1 & upper = 1)
+ return(list(make(<insert-entry>,
+ source-index: row,
+ dest-index: row,
+ count: seq2.size - row)));
+ elseif (lower = -1 & upper = -1)
+ return(list(make(<delete-entry>,
+ dest-index: row,
+ count: seq1.size - row)))
+ end;
// For each diagonal k, last-distance[k] is the last row that
// contains the desired distance.
//
More information about the chatter
mailing list