프로그램은 순차, 분기, 반복, 참조로 구성된다
패러다임은 위 4가지 요소를 어떻게 이용할 것인가를 다룬다.
상태가 없기 때문에 사이드 이펙트가 없다.
⚠️ 상태를 조작할 수 없으므로 메모리를 더 사용하는 방법 등을 사용할 수 밖에 없다.
재사용성이 높다
⚠️ 이를 위해 함수를 잘게 쪼개다보면 오히려 더 복잡해질 수 있다.
코드가 짧고 간결하다.
⚠️ 많은 숙련도를 요구한다.
Control Flow
→ 문제를 어떻게 해결해야 하는지 컴퓨터에게 명령을 내리는 방법
let a = [1, 2, 3, 4, 5];
for(let i = 0; i < 5; i += 1) {
if(a[i] % 2 === 0) console.log(a[i]);
}
Data Flow
→ 무엇을 해결해야 할지에 집중하고 해결 방법은 컴퓨터에게 위임하는 방법
- 함수형 프로그래밍을 만났을 때 극대화
⇒ 데이터 제어없이 필요한 함수만 조합하여 해결 가능해짐
[1, 2, 3, 4, 5]
.filter((item) => item % 2 === 0)
.forEach((item) => console.log(item));
⇒ 사고방식의 차이!
📚 추천하는 책!
함수형 사고