Reverse a list

Peter Haworth pete at lcsql.com
Fri Feb 13 16:11:37 EST 2015


Right,that's a common technique to avoid the timing problmem when you need
a numeric index for some reason.

My stack is 100,000 lines Mike, actually 99,913.  You're probably getting
mixed up with the stack name which includes "10000" because I started
testing that way then increased it to 100, 000 and couldn't be bothered
changing the name :-)

On Fri Feb 13 2015 at 1:03:09 PM Mike Kerner <MikeKerner at roadrunner.com>
wrote:

> No, no, it isn't 100,000 lines, it's only 10,000 lines.  0.129 vs 39.0.
>
> So then, just for the heck of it, because if we do the "repeat for", we
> gain some additional information (the line number we're on), I added "put 0
> into i" before the loop and then "add 1 to i" inside the loop, at the top.
> We get... 0.135 seconds.
>
> On Fri, Feb 13, 2015 at 3:49 PM, Peter Haworth <pete at lcsql.com> wrote:
>
> > Hi Mike,
> > Glad you figured out the reason for the speed difference.
> >
> > Not sure if there's a single thread anywhere that talks about repeat
> loops
> > but "repeat with" can be orders of magnitude faster than "repeat for" as
> > you've discovered.  In this case there were about 100k lines in the data
> > and I think I'm right in saying that the time taken to execute a repeat
> > with loop is directly related to the number of lines being processed.
> >
> >
> >
> > On Fri Feb 13 2015 at 12:41:14 PM Mike Kerner <MikeKerner at roadrunner.com
> >
> > wrote:
> >
> > > I must have missed a thread, somewhere.  That would be the thread on
> how
> > LC
> > > handles loops.
> > >
> > > To recap, doing this sort using an sqlite database (insert the values
> > into
> > > a table, then sort the table), was taking me almost 40 seconds.  Then
> > Pete
> > > chimed in and had it working in a couple hundred milliseconds.
> > >
> > > The difference?  Pete was using a loop of the form
> > > repeat for each line tLine in theData
> > >
> > > and I was doing a
> > > repeat with i = 1 to the number of lines in tData
> > >
> > >
> > > So, is there some more in-depth discussion of loop forms in LC,
> > somewhere?
> > > I learned something new, today, because 300x faster is a little bit
> > > important.
> > >
> > > On Thu, Feb 12, 2015 at 9:35 PM, Kay C Lan <lan.kc.macmail at gmail.com>
> > > wrote:
> > >
> > > > On Fri, Feb 13, 2015 at 3:04 AM, J. Landman Gay <
> > > jacque at hyperactivesw.com>
> > > > wrote:
> > > >
> > > > > On 2/12/2015 12:54 PM, Peter Haworth wrote:
> > > > >
> > > > >>
> > > > >>>  I haven't run any of the LC scripts to do this but if that's
> true,
> > > > then
> > > > >> they don't achieve the original objective of reversing the list.
> > > > >>
> > > > >
> > > > > I don't think it's true. Using LC scripts, the first and last lines
> > > will
> > > > > be terminated by a CR and the line count won't change. The first
> and
> > > last
> > > > > lines will have no values but are still terminated by a CR, which
> is
> > > what
> > > > > determines the count.
> > > > >
> > > >
> > > > Jacques right. I should have actually run the scripts rather than
> just
> > > > doing it mentally. Because they all add a terminating CR then all is
> > > good.
> > > >
> > > > Apologies for confusing the matter.
> > > > _______________________________________________
> > > > 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
> > > >
> > >
> > >
> > >
> > > --
> > > On the first day, God created the heavens and the Earth
> > > On the second day, God created the oceans.
> > > On the third day, God put the animals on hold for a few hours,
> > >    and did a little diving.
> > > And God said, "This is good."
> > > _______________________________________________
> > > 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
> > >
> > _______________________________________________
> > 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
> >
>
>
>
> --
> On the first day, God created the heavens and the Earth
> On the second day, God created the oceans.
> On the third day, God put the animals on hold for a few hours,
>    and did a little diving.
> And God said, "This is good."
> _______________________________________________
> 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