이 시리즈는 "스칼라로 배우는 함수형 프로그래밍"을 TypeScript로 실습한 내용을 정리하고 있습니다.
https://github.com/JsonKim/fpinscala-with-typescript/commit/be9e33570249ebd42b99b53c14b67c3d166f3294
https://github.com/JsonKim/fpinscala-with-typescript/commit/0ed71f303364879ec301d00f4ac666cd056d27f2
https://github.com/JsonKim/fpinscala-with-typescript/commit/c82b72c23d1575d6d45532c852efccff5e663d0b
List가 탈출이 불가능한 루프의 중첩이라면, Stream은 함수들이 마치 하나의 루프 안에서 동작하는것 처럼 합성이 가능하기 때문에 더 간단한 구성요소의 사용과 효율적인 구현이 가능하다.
비엄격성을 사용하면 효율적이고 모듈화된 함수적 프로그램을 작성 할 수 있다. 그러나 이것은 함수적 코드의 효율성을 되찾기 위한 기법만은 아니며 훨씬 더 큰 개념이다.
표현식의 서술과 표현식의 평가 방법 및 시기를 분리하고 서로 다른 부분을 평가해서 서로 다른 결과를 얻는 식으로 표현식의 서술을 여러 문맥에서 재사용 할 수 있다. 엄격한 코드는 서술과 평가가 엮여 있으면 그런 재사용이 불가능하다.