Functional Programming - Lazy Evaluation
Haskell에서 특이한 점은 lazy evaluation을 한다는 점입니다. scala등 다른 언어에서도 lazy evaluation을 지원하지만, Haskell은 strict로 만들지 않는 이상 모든 부분이 lazy evaluation을 한다는 점입니다. Introduction 지금까지 우리는 evaluation이 Haskell expression에 대해 어떻게 이루어지는지 자세하게 다룬 적이 없었습니다. 사실 우리는 다음과 같은 단순한 방법으로 evaluation을 수행하였습니다. 불필요한 평가(unnecessary evaluation)을 피해라. 프로그램이 더 모듈화(modular) 될 수 있도록 하라. 무한(infinite) list에 대해 프로그램이 수행할 수 있도록 하라. 위에 따라 Haskell의 평가 기술(evaluation technique)은 게이른 평가(lazy evaluation)이며, 따라서 Haskell은 lazy functional language라고 말 할 수 있습니다.…