이번 포스팅은 함수형 프로그래밍이 왜 좋은지 느끼기 위해 명령형 프로그래밍선언형 프로그래밍의 차이를 알기 위함 입니다.

선언형 코드(Declarative)

예) result = 햄버거 만들기

명령형 코드(Imperative)

예) 빵추가 + 토마토, 양상추, 치즈 자르기 + 합치기 + result = 완료

명령형, 선언형 코드 예제

JavaScript를 통해 예시를 들어보자. 다음 예제는 문자열에 존재하는 공백을 특정 문자로 대체하는 함수이다. 명령형 코드에서 이를 해결하는 방법은 다음과 같다.

function spaceToHeart(text) {
	let result = "";
	for(let i = 0; i < text.length; i++) {
		if(text[i]) {
			result += "⭐";
		} else {
			result += text[i];
		}
	}
	return result;
}

보다시피, 명령형 코드는 요구사항을 충족하는데 필요한 모든 단계를 하나씩 적고 있다.

다음으로 선언형 코드에서 이를 해결하는 방법은 다음과 같다.

function spaceToHeart(text) {
	return text.replaceAll(" ", "⭐");
}