무엇을 어떻게 할 것인가
절차형 프로그래밍은 어떻게에 중점을 두고 프로그래밍을 하는 방식을 말한다.
즉, 코드로 원하는 결과를 달성해 나가는 과정에 중점을 두는 프로그래밍 방식이다.
// 배열을 파라미터로 받고 각 요소들의 값에 2를 곱하는 함수
function double (arr) {
let results = [];
for (let i = 0; i < arr.length; i++){
results.push(arr[i] * 2)
}
return results
}
위 코드처럼 절차형 프로그래밍 방식은 배열 요소의 곱하기 2 한 값을 구하기 위해 반복문으로 배열 요소 하나하나에 접근, 계산하는 방법을 구현하고 있다.
무엇을 할 것인가
함수형 프로그래밍은 선언적 프로그래밍이라는 더 넓은 프로그래밍 패러다임의 한 가지다.
선언형 프로그래밍은 필요한 것을 달성하는 과정을 하나하나 기술하는 것보다 필요한 것이 어떤것인지 기술하는 데 중점을 두는 방식이다.
function double (arr) {
return arr.map((item) => item * 2)
}
위 코드는 절차형 프로그래밍 방식이 추상화 된 것이다. 이처럼 선언형 방식은 map()
이 어떻게 작동되는지 알 필요없이 무엇을 원하는지에 중점을 두는 방식이다.