I admit that the example is contrived, and the control flow can be followed quite clearly because of the example's size.
However, imagine that f and g is placed in different source files in a large project. That's what Dijkstra detests about arbitrary labels, in that a program's control flow is only obvious to the guy who first wrote it.
My point is exactly that. C is a structured, procedural programming language that will only consider procedurally scoped labels. You can't execute it because it is not valid C that a standard compiler would accept, and we should be thankful because of that.
Hi! As part of a college assignment, I was asked to write an introduction to a technical concept. I chose functional programming. Let me know what you think!
I actually learned something from this. OpenSCAD is good school of functional programming. There is no "time" or flow of execution. You specify static model (or automaton) which does have desired properties in space (or time).
Thanks for reading! Interesting. Thats kind of like FRP right? 3D CAD modeling seems like a really good domain for such a paradigm, coupled with a declarative style of programming.