Hi Ralph, Cheers, that makes a lot of sense, thanks for explaining the use case :)
As someone who's mostly worked in Python, I guess I've never seen it used. Hamish On 12/05/2019 09:26, Ralph Corderoy wrote: > Hi Hamish, > >> I've heard bad things about goto :) > Forget all you've heard. :-) > > The problems with goto date back to languages that offered a one-line > if-statement that could goto. No other control-flow than goto existed; > no while-loop, for-loop, etc. This included very popular languages that > were the mainstream, e.g. FORTRAN 77, that I and others here used. > Unfettered use of conditional goto then created a tangle of flow that > could be difficult to follow, especially as labels were just numbers and > didn't need to be in numerical order. Oh, and labels were also used for > I/O formatting. :-) Thus it was easy for code to `bit rot' into a > tangle over time. > > Structured used of goto, including conditional goto, was fine. > It's just your normal control-flow structures written a different way. > In the 70s, a movement gained ground, Structured Programming, to promote > this style and goto was tamed. > > But goto still exist, and very useful it is too, allowing flow not > possible without it without overhead. Donald Knuth's 1974 paper, > _Structured programming with go to statements_, is a good read if you > want to see why. > https://lxr.missinglinkelectronics.com/linux/fs/file.c#L85 is an example > from the Linux kernel of its continuing use. > > And of course, behind the scenes, your CPU is doing goto and conditional > goto all the time; it has nothing higher level. It also has interrupts, > that are a goto that can happen without a goto instruction. :-) > -- Next meeting: BEC, Bournemouth, Tuesday, 2019-06-04 20:00 Check to whom you are replying Meetings, mailing list, IRC, ... http://dorset.lug.org.uk/ New thread, don't hijack: mailto:dorset@mailman.lug.org.uk