🙋♂️ 학습
📚 함수형 프로그래밍이란?
- 수학적인 함수로 표현 가능한 프로그래밍
- 순수 함수를 사용 (동일한 매개변수를 넣으면 동일한 리턴값을 반환)
- 람다식, 고차 함수를 사용해 구성
- 코드가 간략해지고 테스트나 재사용성이 용이
📚 순수 함수
- side-effect 가 없는 함수
- 동일한 입력 인자에 대해서는 동일한 반환값을 가진다.
- 따라서, 변경 불가한 데이터를 활용
- 함수 외부의 어떤 상태도 바뀌지 않는다
- 다른 값에 영향을 주지 않고 순수하게, 투명하게 입력받은 인자만 다루고 동일한 반환값을 보장 (참조 투명성)
- 순수 함수를 사용하는 이유
- 입력과 내용을 분리하고 모듈화 하므로 재사용성이 높아진다.
- 여러가지 함수들과 조합해도 부작용이 없다.
- 특정 상태에 영향을 주지 않으므로 병행 작업 시 안전하다.
- 함수의 값을 추적하고 예측 할 수 있기때문에 테스트, 디버깅 등이 유리하다
📚 람다식
- 람다식은 람다 대수(Lambda calculus)에서 유래한 것으로 다음과 같은 형태의 함수를 람다식이라고 함
{ x, y -> x + y } // 람다식의 예 (이름이 없는 함수 형태)
- 람다식은 고차 함수에서 인자로 넘기거나 결과값으로 반환 등을 할 수 있다.
📚 일급 객체
- 함수형 프로그래밍에서는 함수를 일급 객체로 간주함.
- 특징
- 일급 객체는 함수의 인자로 전달할 수 있다.
일급 객체는 함수의 반환값에 사용할 수 있다.
일급 객체는 변수에 담을 수 있다.
📚 고차 함수
- 고차 함수(high-order function)란 다른 함수를 인자로 사용하거나 함수를 결과값으로 반환하는 함수.
- 두 특징을 모두 가지고 있어도 고차 함수다.
- 즉, 일급 객체 혹은 일급 함수를 서로 주고받을 수 있는 함수가 고차 함수가 되는 것
참고
네이버 부스트코스