Earlier quoted context omitted.
Fair enough. I think it qualifies as "essential complexity" and in my limited experience it's not a common use case and so doesn't make sense to optimize for. In fact in my academic and professional career most of the highly "functional" C that I've come across has been written by me, when I'd rather amuse myself than make something readable. [0] https://en.wikipedia.org/wiki/Essential_complexity
It (this particular example, of function pointer syntax) is absolutely just incidental complexity, though. E.G. Haskell (a -> b) -> c -> d becomes C D (*f(B (*)(A)))(C) and it's no surprise that the former is considered much less fancy than the latter. Of course it's not common — because the language makes it painful :) The causation is the other way around. We've seen in plenty of languages that if first-class funct…
I might write the equivalent signature,
D f(A, B, C)
and then reorganize things to just pass f around, or make a struct if you really want to bake in your first function.