Reverse a list
Mike Bonner
bonnmike at gmail.com
Sun Feb 8 17:15:46 EST 2015
Using numeric sort, 100k lines being reversed takes 126 millisec on my
system.
On Sun, Feb 8, 2015 at 3:13 PM, Mike Bonner <bonnmike at gmail.com> wrote:
> Oops, make sure the sort is numeric, which I forgot.
>
> On Sun, Feb 8, 2015 at 3:09 PM, Mike Bonner <bonnmike at gmail.com> wrote:
>
>> Just curious.. How does this compare?
>>
>> local scount
>> on mouseUp
>> put the number of lines in field 1 + 1 into scount
>> sort lines of field 1 by getCount()
>> end mouseUp
>>
>> function getCount
>> subtract 1 from sCount
>> return sCount
>> end getCount
>>
>> On Sun, Feb 8, 2015 at 2:52 PM, J. Landman Gay <jacque at hyperactivesw.com>
>> wrote:
>>
>>> Just tinkering around on a lazy Sunday, and I thought I'd come up with a
>>> neat way to reverse a list without using the traditional clunky method:
>>>
>>> function reverseSort pList
>>> repeat for each line l in pList
>>> put l & cr before tList
>>> end repeat
>>> return tList
>>> end reverseSort
>>>
>>> One of the best things I learned from a past LC converence came from
>>> Jerry Daniels who said "let the engine do it." It's almost always faster
>>> and more efficient. With that in mind I wrote this:
>>>
>>> local sNum
>>>
>>> function reverseText pList
>>> put the number of lines in pList into sNum
>>> sort lines of pList numeric by reverseSort(each)
>>> return pList
>>> end reverseText
>>>
>>> function reverseSort pTxt
>>> subtract 1 from sNum
>>> return sNum && pTxt
>>> end reverseSort
>>>
>>> Works great and I was proud. Then I did some timing tests and found out
>>> the two methods are very close to equivalent in timing, and on long lists,
>>> the first way is actually faster.
>>>
>>> So much for improving on LC's text chunking speed. Pah.
>>>
>>> --
>>> Jacqueline Landman Gay | jacque at hyperactivesw.com
>>> HyperActive Software | http://www.hyperactivesw.com
>>>
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>
>>
>>
>
More information about the use-livecode
mailing list