Regarding code such as : repeat for each line j in myVar if item 1 of j > 1 and item 2 of j > tMin and item 3 of j < tMax then end if end repeat
I remember a discussion several years ago on this very list mentioning that in the "if" line, the engine would drop evaluation as soon as a false is encountered (which I think is a feature common to many languages now). Therefore carefully organizing the order of the items in each line of myVar can also be a way to preserve the speed of "repeat for each" when complex testing must be done. I wonder how "filter" compares to this... Besides, when very complex testing must be done on several items of each line j, I found that speed can be even more preserved by spliting each line into an array and comparing each array cell to a refernce array... Example : put 1 into Tref1["a"] put 1 into Tref1["b"] put 1 into Tref2[4] put 1 into Tref2[15] put 1 into Tref2[26] repeat for each line j in myVar split j using tab if Tref1[j[1]] is not empty and Tref2[j[2]] is not empty then end if end repeat jbv > "Filter" is a wonderful command that's almost always much faster than > "repeat for each...", provided you're looking for data across a > collection comprised of single-column rows. > > Once you get to multiple columns and you're searching just one of them, > "repeat for each..." scales linearly quite nicely but the performance of > "filter" degrades almost geometrically. > _______________________________________________ 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