Reverse a list

Peter M. Brigham pmbrig at gmail.com
Tue Feb 17 00:02:19 CET 2015


So, Alex's way of doing it is the fastest pure-LC way (I didn't get into using the database methods). I referenced the list and turned the function into a command, saves memory (possibly speed?) on very large lists.

on reverseSort @pList, pDelim
   -- reverse-sorts an arbitrary list
   --    ie, line/item -1 -> line/item 1, line/item -2 -> line/item 2
   -- pList is referenced, so the original list will be changed,
   --    more memory-efficient and slightly faster for large lists
   -- pDelim defaults to cr, can be overridden
   -- thanks to Alex Tweedly of the use-LC list
   --    this was the fastest algorithm of many suggested
   
   if pDelim = empty then put cr into pDelim
   set the linedel to pDelim
   put pList into outList
   put the number of chars in outList into currentLen
   repeat for each line thisLine in pList
      put the number of chars in thisLine into lineLen
      put thisLine & pDelim into char (currentLen-lineLen) to currentLen of outList
      subtract (lineLen+1) from currentLen
   end repeat
   delete char -1 of outList
   put outList into pList
end reverseSort

-- Peter

Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig




More information about the use-livecode mailing list