- As functional programming languages extensively utilise deterministic pure functions, the input values can be distributed across multiple computing devices, and these pure functions are executed independently on these machines.
- They support memoisation because pure functions are referentially transparent, which means for a given set of input values, the function will always return a fixed output. So, the function is only computed once, and the output is stored in a cache. Whenever this value is required, you can directly look it up from the cache memory, without needing to recompute the process.
- Functional programming languages establish a functional dependency between the input and the output values. So, if a certain output is not required, its evaluation can be delayed. This delay in evaluation is known as lazy evaluation.