함수형 언어의 특성: 반복자와 클로저

러스트의 디자인은 기존의 많은 언어와 기술에서 영감을 얻었으며, 영향받은 중요한 것 중 하나에는 함수형 프로그래밍이 있습니다. 함수형 스타일의 프로그래밍은 대개 함수를 값처럼 인수로 넘기는 것, 다른 함수들에서 결괏값으로 함수들을 반환하는 것, 나중에 실행하기 위해 함수를 변수에 할당하는 것 등을 포함합니다.

이번 장에서는, 무엇이 함수형 프로그래밍이고 그렇지 않은지에 대해 논의하는 대신, 다른 언어에서 자주 함수형으로 언급되는 특성들과 유사한 러스트의 특성들에 대해 논의할 것입니다.

더 구체적으로는 다음을 다룹니다:

  • 클로저, 변수에 저장할 수 있는 함수와 유사한 구조.
  • 반복자, 일련의 요소들을 처리할 수 있는 방법.
  • 클로저와 반복자를 사용해서 12장의 I/O 프로젝트를 개선할 수 있는 방법.
  • 클로저와 반복자의 성능 (스포일러 있음: 생각보다 빠릅니다!)

이미 다뤄 본 패턴 매칭이나 열거형과 같은 기능들 역시 함수형 스타일의 영향을 받았습니다. 클로저들과 반복자들을 정복하는 것은 자연스러우면서도 빠른 러스트 코드를 작성하는 데 중요한 부분이기 때문에 이번 장을 통으로 할애했습니다.