3 ms·
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
by Twey 1y ago
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 functions are ergonomic to use then people use them all over the place.
- Y_Y 1y agoWithout curring and closures it certainly will be more painful! 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.
- Twey 1y agoRight, due to the complexity of the syntax one of the most sensible things to do in C if you're faced with a problem that maps naturally to higher-order functions is to reframe the problem so that the solution doesn't use higher-order functions — basically doing a compilation step yourself. D (*f(B (*)(A)))(C) is definitely a fancy type, after all :)