Open bugoverdose opened 2 years ago
함수형 프로그래밍이란 간단히 말해 "최대한 함수를 사용하여 프로그래밍을 하자는 패러다임"이다.
이때 "함수"란 단순히 메서드를 의미하는 것이 아니라 동일한 입력값에 대해 언제나 동일한 출력값이 나오는 수학적인 의미에서의 함수를 말한다. 다양한 입력값이 동일한 값을 출력하는 것은 문제 없지만, 동일한 입력값에 대해서는 다양한 결과가 나오는 경우 함수라고 볼 수 없다.
여기서 나아가 특정 코드가 함수가 되기 위해서는 몇 가지 조건이 더 붙는다.
변경 불가능한 값만을 인자로 받아 활용한다.
그 자체로 일급 시민이어야 한다.
예외를 발생시키면 안 된다.
이러한 사항들을 전부 지킬 수 있고 지키는 것이 권장되는 언어가 있는가 하면, 지킬 수 없거나 지키는 것이 컨벤션에 위배되는 언어도 분명 존재한다.
그러나 다양한 프로그래밍 언어들이 이러한 함수형 프로그래밍 패러다임에 기반하여 만들어지고, 진화하고 있다는 점은 명료하다. 자바에서 함수형 프로그래밍을 적용하는 방법도 좋지만, 일단 개발자로서 이 패러다임에 대해 이해하는 작업은 필요하다.
문제
많은 언어들에서 함수형 프로그래밍 패러다임을 도입하고 있으며, 이는 자바도 예외가 아니다. 이 함수형 프로그래밍의 주요 특징에 대해 체계적으로 정리하여 서술하시오.
선정 배경
관련 챕터