
I'd like to point out that "procedural-functional" is not novel. The programming language Euclid, an "industrial strength Pascal", was sufficiently nailed down that a blue-and-white report from Xerox PARC showed that it could be viewed as a pure functional language. And I don't know if anyone ever pointed it out, but the language used in Dijkstra's "A Discipline of Programming", and in a number of papers subsequently, was constrained in the same way, to the point where that language can be seen as a sheep in wolf's clothing too. I'd like to point out something else. We are looking at the end of Moore's Law. If that end hasn't already overtaken us, it's visible in the rear view mirror and coming up fast. HP, for example, are revisiting the idea of having *LOTS* of CPUs mixed in with the memory because conventional multicore has its own problems. And the Square Kilometre Array telescope's computers are definitely going to be chock full of FPGAs as well as more conventional things like PGPUs. This means that in the foreseeable future we are going to need to learn a new style of programming because the antique style, as exemplified by say Java, just isn't going to scale. APL was once described as "the language of the future for the problems of the past". I suspect that WIP may be headed in the same direction. Disciple http://trac.ouroborus.net/ddc/ may be of interest. Quoting that page, "DDC is a research compiler used to investigate program transformation in the presence of computational effects. It compiles a family of strict functional core languages and supports region and effect. This extra information provides a handle on the operational behaviour of code that isn't available in other languages. Programs can be written in either a pure/functional or effectful/imperative style, and one of our goals is to provide both styles coherently in the same language."