Alex Tweedly wrote:

... you could do it like

put fld 'emailList' into tEmailList
put empty into tNewEmail
repeat for each line tEmail in tEmailList
   if line tEmail is not empty then
      put tEmail & CR after tNewEmailList
  end if
end repeat
put tNewEmailList into fld 'emailList'


but easier would be

put fld 'emailList' into tEmailList
filter tEmailList without empty
put tEmailList into fld 'emailList'

Easier to script, yes, but note the result from running this script which compares both methods:


on mouseUp
  put 1000 into N
  put fld 1 into tData
  --
  --
  -- 1. repeat for each
  --
  put the millisecs into t
  repeat N
    --
    put empty into R1
    repeat for each line tLine in tData
      if tLine is not empty then
        put tLine &cr after R1
      end if
    end repeat
    delete last char of R1
    --
  end repeat
  put the millisecs - t into t1
  --
  --
  -- 2. filter:
  --
  put the millisecs into t
  repeat N
    --
    put tData into R2
    filter R2 without empty
    --
  end repeat
  put the millisecs - t into t2
  --
  --
  -- Result:
  put t1 && t2
end mouseUp


Did I write this wrong?

Seems most times I benchmark "repeat for each" with the well-optimized "put after" I get results that hold up surprisingly well.

I have another post in the works with some other interesting benchmarks related to processing lists (things I learned on summer vacation <g>)...

--
 Richard Gaskin
 Managing Editor, revJournal
 _______________________________________________________
 Rev tips, tutorials and more: http://www.revJournal.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to