Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

함수형 언어 기능: 반복자와 클로저

러스트 설계는 많은 기존 언어와 기법에서 영감을 받았고, 그중 하나의 중요한 영향이 함수형 프로그래밍(functional programming) 입니다. 함수형 스타일의 프로그래밍은 함수를 값처럼 다루는 경우가 많습니다. 예를 들어 함수를 인수로 넘기거나, 다른 함수에서 반환하거나, 나중에 실행하기 위해 변수에 저장하는 식입니다.

이 장에서는 “무엇이 함수형 프로그래밍인가”라는 철학적 논쟁보다는, 여러 언어에서 흔히 함수형 기능이라고 부르는 것과 비슷한 러스트 기능들을 살펴보겠습니다.

구체적으로는 다음을 다룹니다.

  • 클로저(closures): 변수에 저장할 수 있는 함수 비슷한 구성 요소
  • 반복자(iterators): 요소들의 연속을 처리하는 방법
  • 12장의 I/O 프로젝트를 클로저와 반복자로 개선하는 방법
  • 클로저와 반복자의 성능(결론부터 말하면, 생각보다 훨씬 빠릅니다!)

패턴 매칭이나 enum 같은 다른 러스트 기능들도 함수형 스타일의 영향을 받았다는 점은 이미 이야기했습니다. 빠르고 관용적인 러스트 코드를 작성하는 데 클로저와 반복자를 잘 다루는 것은 아주 중요하므로, 이 장 전체를 이 두 주제에 할애하겠습니다.