오예 !!!
[프로그래밍 패러다임] 1. 선언형과 함수형 프로그래밍 본문
선언형과 함수형 프로그래밍
- 선언형 프로그래밍
- '무엇을' 풀어내는가에 집중
- "프로그램은 함수로 이루어진 것이다"라는 명제가 담겨 있음
- 함수형 프로그래밍
- 선언형 패러다임의 일종
- 작은 순수함수들을 블록처럼 쌓아 로직을 구현하고, 고차함수를 통해 재사용성을 높임
- 자바스크립트는 단순 & 유연한 언어이고, 함수가 일급 객체 ➡️ 객체지향 보다 함수지향 프로그래밍 선호
- 예시
- reduce()는 '배열'만 받아서 누적한 결괏값을 반환하는 순수 함수
const ret = [1, 2, 3, 4, 5, 11, 12]
.reduce((max, num) => num > max ? num : max, 0)
console.log(ret) // 12
- 순수 함수
- 출력이 입력에만 의존하는 것
- 아래의 pure 함수는 매개변수 a, b에만 영향 받음
- a, b 외의 다른 전역 변수 등이 출력에 영향을 주면 순수 함수가 아님
const pure = (a, b) => {
return a + b
}
- 고차 함수
- 함수가 함수를 값처럼 매개변수로 받아 로직을 생성할 수 있는 것
- 고차 함수를 쓰기 위해서는 해당 언어가 일급 객체라는 특징을 가져야 함
- 일급 객체
- 변수나 메서드에 함수를 할당할 수 있음
- 함수 안에 함수를 매개변수로 담을 수 있음
- 함수가 함수를 반환할 수 있음
- 함수형 프로그래밍은 이외에도 커링, 불변성 등 많은 특징 존재
'🌟취준 > [CS STUDY] 프로그래밍 패러다임' 카테고리의 다른 글
| [프로그래밍 패러다임] 4. 패러다임의 혼합 (0) | 2023.03.14 |
|---|---|
| [프로그래밍 패러다임] 3. 절차형 프로그래밍 (0) | 2023.03.14 |
| [프로그래밍 패러다임] 2. 객체지향 프로그래밍 (1) | 2023.03.14 |
| [프로그래밍 패러다임] 0. 프로그래밍 패러다임 (0) | 2023.03.14 |
Comments