While trying to summarize my knowledge about lambda calculus, I understood that I'm quite familiar with call-by-value but I've never seen сall-by-need reduction semantics. I know the definition, but it would be great to see precise meaning.
This is what I have for call-by-need and call-by-value (not very detailed description):
Call-by-value
Small Step
Values
β-reduction
Evaluation context
Big Step (with closures and environment)
Closures
Environment
Reduction
Call-by-name
Small Step
β-reduction
Evaluation context
I guess there is also a big step, which must be quite similar to call-by-value, but once again, its better to see it once.
So I will be grateful if someone can extend my list with call-by-need.