Mark Wieder wrote:

I'm sort of OK with it because there's a simple way to get the desired
answer. But I filed bug 9910 requesting the simplified syntax with
"numeric" being optional.

Respectfully, I think it may be asking a bit much of the engine - and perhaps the scripter - to expect the engine to make that sort of guess correctly in all cases.

When we write:

   sort myList by length(each)

...what we're asking the engine to do is two steps:

1. Obtain a list of integers representing the length of each line
2. Sort that list

While both instructions appear in the same statement, they're pretty much independent of one another, effectively the same as if they were on separate lines:

  get LineLengths(myList) -- some function that works on the list
  sort it

So in effect, request #9910 is asking for the engine to examine the values of any list passed to the sort command, and if it finds that they're all integers then sort then numerically rather than alphabetically.

On the one hand I agree this would be convenient, since most of the time that we do sorts on lists consisting of only integers we're doing so numerically.

But on the other hand it's quite a departure from the established sort convention in LiveCode, in which it always sorts alphabetically unless it's explicitly told to do otherwise.

If this request were implemented as requested, it would introduce a "sometimes" rule, in which the engine sometimes sorts alphabetically and sometimes not, and the developer would have to keep track of their data to reliably know what the engine will choose to do.

Taking the request a step further, we might reasonably expect a list of dates to be sorted by dateTime, but once again if this were the default behavior we'd have to monitor our data to know what the engine's default behavior would be.

At a minimum, it may be useful to have changes in the default sorting behavior governed by a global property, something like "the smartsort", which would only introduce this "sometimes" rule once it's set, and otherwise preserve the requirement for explicit sort typing which has characterized the language thus far.

--
 Richard Gaskin
 Fourth World
 LiveCode training and consulting: http://www.fourthworld.com
 Webzine for LiveCode developers: http://www.LiveCodeJournal.com
 LiveCode Journal blog: http://LiveCodejournal.com/blog.irv

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to