4 ms·
I think C++ compiles down to a pure functional language that is then optimized into an efficient beast. So I'm not sure that pure code is hard to optimize.
by btcindivist 8y ago
I think C++ compiles down to a pure functional language that is then optimized into an efficient beast. So I'm not sure that pure code is hard to optimize.
- seanmcdirmid 8y agoSSA is quite different from a pure FP; for example it doesn’t do anything about effects, it only gets rid of local imperative assignments that don’t really interfere with purity anyways.
- tathougies 8y agoMost imperative languages have an intermediate language in which local variables are immutable. However, purity is about more than immutability. For example, in C++ x = doSomething(x) + 1 Can be written to not overwrite x int x2 = doSomething(x) + 1 This is equivalent in some ways to Haskell let x' = doSomething x + 1 However, I know that in Haskell, evaluating 'doSomething x' will not turn off the computer, display anything to the user, or launch missiles. I have no idea what evaluating 'doSomething(x)' does in C++. It may add things to caches, exit the program, etc.