There is no place for high order functions and functional constructs in high performance F# code.
There is no place for high order functions and functional constructs in high performance F# code.
It is no different in most languages, even C++ can look pretty ugly when going for F1 performance.
I suppose, though, that it's always easier to throw a baby out with the bathwater when it's someone else's baby.
This sounds pretty good to me! Not to mention that once you get out of the hot path, the threshold to switch to more readable F# is very low.
However, I wish the compiler would more aggressively optimise things so that I can dip into this style less often. I shouldn’t have to write the imperative stuff if the translation is mechanical!
The C++ compilers do far more work for the user, despite F# being a language much more conducive to being optimised.
It would be great if Microsoft Research could sponsor a project in this area.