Reverse a list

Mike Bonner bonnmike at gmail.com
Sun Feb 8 17:13:24 EST 2015


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