Intersect is an engine implementation of something that can be done in pure LCS. I wrote a version of the function you needed that only used LCS without the engine optimized functions. My function only iterates over an array once (instead of 3 times) yet takes twice as long. It deletes keys from left as it iterates and also builds the desired right at the same time.
To Mark’s point, I did try a pure LCS approach with 2 loops which only used delete. That was slightly slower than my initial approach. I was just attempting to show how much the engine functions outperformed what could be done in pure LCS. Also I wanted to quantify the delta. I guess I should really compare the pure intersect and union functions too. If anyone is interested I can put a copy of the stack online with all of the variations that I timed. Thanks, Brian On Aug 5, 2018, 2:26 PM -0500, Richard Gaskin via use-livecode <use-livecode@lists.runrev.com>, wrote: > Brian Milby wrote: > > > I think Mark's code had a typo (left returned too many keys), but even > > when corrected it takes half the time as a pure LCS solution. Here's > > my modification: > > > > function bwmValueDiff pLeft, pRight > > local tResult > > intersect pLeft with pRight into tResult["1"] > > repeat for each key tKey in tResult["1"] > > if pLeft[tKey] is pRight[tKey] then > > delete variable tResult["1"][tKey] > > end if > > end repeat > > intersect pRight with tResult["1"] into tResult["2"] > > return tResult > > end bwmValueDiff > > That looks like LCS. What is the "pure LCS solution" you were comparing > it to? > > -- > Richard Gaskin > Fourth World Systems > Software Design and Development for the Desktop, Mobile, and the Web > ____________________________________________________________________ > ambassa...@fourthworld.com http://www.FourthWorld.com > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode