I'm working in a Coursera course on functional programming and at some point they discuss the difference between call-by-value and call-by-name evaluation techniques. They're some point that confuses me, they say:
Both techniques reduce to the same final values as long as:
- the reduced expressions consists of pure functions and
- both evaluations terminate
which seems to be a lambda calculus theorem.
Could you explain me what they mean by "the reduced expressions conssist of pure functions"?