Are there any successful and practical functional languages(such as Erlang) or libraries that are base on the assumption that the program written in such language has no side effect or only has controlled side effect(for example, represented by Monad, so could be detected and separated by compiler)
Asked
Active
Viewed 260 times
1 Answers
0
This is largely a duplicate of Why is there no implicit parallelism in Haskell?
The answer is yes, there are automated approaches to parallelism that rely on absence of side effects. E.g. nested data parallelism in Haskell. Fully automated approaches tend to work best when the cost model is known in advance, such as in parallel array programming.
However, if you are willing to add a few annotations of your own you can still exploit immutability to gain speedups. par
annotations in e.g. Haskell are examples that have a good power to weight ratio.

Community
- 1
- 1

Don Stewart
- 137,316
- 36
- 365
- 468