Reverse a list

J. Landman Gay jacque at hyperactivesw.com
Mon Feb 16 17:12:59 EST 2015


This is getting to be just too much fun. I think Geoff was right, we 
don't need to initialize sNum because we don't care if we go into 
negative territory. And since the handler isn't actually using the value 
of the line, we can omit passing it by removing "each". So it could be 
even shorter/faster this way:

local sNum
function reverseText @pList
    sort lines of pList numeric by reverseSort()
    return pList
end reverseText

private function reverseSort
    subtract 1 from sNum
    return sNum
end reverseSort

I'm not sure the private declaration is necessary, but it won't hurt. My 
thinking is that the engine only looks for a private function in the 
current script, but it also looks in the current script first when the 
function isn't private. If the function is there, it seems that the 
speed would be the same in either case. The engine would stop looking at 
the same place.

Passing the list with @ is a good addition.

Then there is Alex's version which is a different animal.


On 2/16/2015 12:58 PM, BNig wrote:
> Hi Peter,
>
> you also might want to check your reverse algorithm on 7.x.x
>
> in my testing Jacque's initial post with little tweaks is as fast as your
> code and faster on 7.x.x (tested on 7.0.2 rc2) In my testing it took only
> 60% of the time compared to yours on 7.x.x
> Of course Alex Tweedly's ingenious inverse code leaves everything in the
> dust, except on 7.x.x.
> ----------------------------------------------------------------------
> on mouseUp
>     put field 1 into tData
>     put the milliseconds into t
>     get reverseText (tData)
>     put the milliseconds - t into field "fRes"
>     put it into field 1
> end mouseUp
>
> 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
>
>   private function reverseSort
>     subtract 1 from sNum
>     return sNum
> end reverseSort
> --------------------------------------------------------
>
> private and @ help when the line count is high.
>
> Kind regards
>
> Bernd
>
>
>
> --
> View this message in context: http://runtime-revolution.278305.n4.nabble.com/Reverse-a-list-tp4688611p4688891.html
> Sent from the Revolution - User mailing list archive at Nabble.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
>


-- 
Jacqueline Landman Gay         |     jacque at hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com




More information about the use-livecode mailing list