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