As I know many functional programming languages do not reduce terms completely. Instead, they implement lazy evaluation, call by value strategies.

I think they do so because

1) strong reduction takes more steps to be completed, thus make the computation slow

2) strong reduction is not needed.

3) implementing strong reduction complicates the implementation. 

am I right? 

I want to know why the strong reduction is not implemented while it is possible.

Similar questions and discussions