the keys of myArray
Richard Gaskin
ambassador at fourthworld.com
Fri Sep 8 11:31:02 EDT 2006
jbv wrote:
>> There may be other ways to handle this, although if using the built-in
>> sort command will do what you need it's reasonably efficient. It's only
>> one line of code -- was it causing a problem in your script?
>
> it's not causing any problem in my script.
>
> again, I was just wondering about any logic behind the keys order...
> actually, there's only 1 situation I can imagine in which it could be
> useful to know in advance in which order keys would be output :
> in heavy math treatments with loops in which arrays values & keys
> are needed for further processing, many lines of code (sort commands)
> would be saved and scripts sped up significantly...
If you're up for it feel free to post the code and the folks here can
see what can be done to optimize it. I've been very impressed with the
results of that sort of group effort here and on the MC list, and I've
learned a lot from those exercises.
A recent example:
The script colorization algorithm in the MC IDE was quite slow, taking
more than 30 seconds to colorize long scripts like libURL on my 1GHz
Mac. Those of us who volunteer to work on the MC IDE were looking for
ways to speed that up, but we considered caching the htmlText a last
resort since that workaround adds its own difficulties (increases object
size, adds stuff to the user's custom properties, and introduces
additional complexity into the code base, requiring overhead to maintain
and keep it in synch).
More importantly, this type of algorithm is likely useful in other
people's apps, so coming up with a way to do this efficiently without
caching would open doors for Rev's customers, turning what was a
annoyance and a support expense into an inspiring liberation.
I don't know much, but I know there are a lot of people in this
community much smarter than I am, so I posted a note to the MC IDE list
to ask for help in optimizing this.
We had four people come up with a variety of alternatives, all of which
were several orders of magnitude faster and none of which required caching.
The end result is that there's now a script colorization algorithm
available which can do libURL in about a second -- and that's on a slow
machine.
This exercise not only gave us a very valuable algorithm, but more
importantly reinforced the value of leveraging the collective wisdom of
the community when facing a difficult challenge.
After that experience I'm sold: as soon as I come across a task that I
think is impossible, I invite others to look it over and I always learn
a lot in the process. And usually the code gets both smaller and faster
as well. :)
> BTW here's a suggestion for a slight improvement of the "keys" function :
> get the numKeys of myArray --> outputs the keys in numeric order
> get the alphaKeys of myArray --> outputs the keys in alphabetic order
Those might be handy indeed -- have you submitted those requests to BZ?
--
Richard Gaskin
Managing Editor, revJournal
_______________________________________________________
Rev tips, tutorials and more: http://www.revJournal.com
More information about the use-livecode
mailing list