[kotlin] 함수형 프로그래밍의 기본 개념과 용어 소개

함수형 프로그래밍은 최근 프로그래밍 커뮤니티에서 핵심적인 개념으로 부상하고 있다. 이번 포스트에서는 함수형 프로그래밍의 기본 개념과 흔히 사용되는 용어들을 살펴보도록 하겠습니다.

목차

  1. 함수형 프로그래밍이란?
  2. 일급 함수와 고차 함수
  3. 불변성(Immutability)과 순수 함수(Pure Functions)
  4. 람다식(Lambda Expressions)과 클로저(Closures)

함수형 프로그래밍이란?

함수형 프로그래밍은 프로그램을 수학적 함수의 조합으로 보는 프로그래밍 패러다임입니다. 이는 상태 변경보다는 계산 모델에 중점을 두며, 부작용을 피하려고 합니다.

함수형 프로그래밍에서 함수는 일급 객체(first-class citizen)로 다뤄지므로, 함수를 변수에 할당하거나 함수를 다른 함수의 인자로 전달할 수 있습니다.

일급 함수와 고차 함수

함수가 일급 함수라는 것은, 함수가 값과 같이 취급되어 다른 함수의 인자로 전달하거나 결과값으로 반환될 수 있음을 뜻합니다. 고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수를 뜻합니다.

예를 들어, map, filter, reduce와 같은 함수는 고차 함수의 한 예로, 함수형 프로그래밍에서 자주 사용됩니다.

불변성과 순수 함수

함수형 프로그래밍은 불변성 (Immutability)과 순수 함수(Pure Functions)를 강조합니다. 불변성은 데이터가 변경되지 않음을 의미하며, 순수 함수는 같은 입력에 대해 항상 같은 결과를 반환하고 외부의 상태에 영향을 주지 않는 함수를 의미합니다.

람다식과 클로저

람다식은 익명 함수를 생성하기 위한 함수 표현식으로, 함수를 간결하게 표현할 수 있도록 합니다. 클로저는 함수 내에서 정의된 함수로, 외부 함수의 변수에 접근할 수 있습니다.

함수형 프로그래밍의 이러한 용어들을 이해하면, 함수형 프로그래밍을 좀 더 깊이 있게 이해할 수 있습니다.

이상으로 함수형 프로그래밍의 기본 개념과 용어에 대한 소개를 마치도록 하겠습니다.