Nested Repeat loops

Richard Gaskin ambassador at fourthworld.com
Sat Jun 21 10:22:37 EDT 2014


Peter M. Brigham wrote:
> On Jun 21, 2014, at 2:33 AM, Richmond wrote:
>
>> put 1 into XX
>> repeat until XX>7
>>  do something
>>    put 1 into ZZ
>>        repeat until ZZ>7
>>          do something else
>>             put 1 into YY
>>                repeat until YY>7
>>                    ask "What colour are you socks?"
>>                       if it contains "purple" then
>>                           goto %%%
>>                       end if
>>                       add 1 to YY
>>                 end repeat
>>              add 1 to ZZ
>>          end repeat
>>       add 1 to XX
>> end repeat
>> %%%
>
> I like this. The syntax could be
>    go %n -- eg, %4
>
> then the execution would jump to the statement
>    %n -- eg, %4
>
> (Which would allow really flexible GOTO equivalents that would be independent of script line numbering. I always struggled with the Fortran GOTO statements, since I was always having to renumber my lines when I revised my programs.)
>
> Enhancement request, anyone?

At the RevLive conference in Vegas a few yeas back, Robert Cailliau's 
opening keynote covered some of the most adventurous feature requests 
I've ever heard anyone suggest for xTalks.

Among them was the notion of named control structures, in part for 
exactly the reason covered in this thread, the desire to exit a specific 
loop when loops are nested.

I can't recall the specifics of his proposed syntax, but I remember 
being impressed by how natural it seemed.  Maybe it was along the lines of:

   repeat with i = 1 to tSomething named "MySomethingLoop"
       repeat with j = 1 to tSomethingElse named "MyOtherLoop"
         DoSomethingWith i,j
         exit "MySomethingLoop"
       end repeat
   end repeat

With named control structures we'd never need to worry about line numbers.

I'm not sure if that was submitted as a feature request, but IMO it 
should be.  And it would be cool to have just about everything else he 
proposed go into the DB as well - all of it was valuable, very 
forward-thinking, reflecting the best of many other languages, all 
presented in a very xTalk way.

--
  Richard Gaskin
  Fourth World
  LiveCode training and consulting: http://www.fourthworld.com
  Webzine for LiveCode developers: http://www.LiveCodeJournal.com
  Follow me on Twitter:  http://twitter.com/FourthWorldSys




More information about the use-livecode mailing list