선언형
명령형 프로그래밍은 ‘무엇을 어떻게 할 것인지’에 초점을 두는 반면, 함수형 프로그래밍은 ‘무엇을 할 것인지’에 초점을 둡니다. 마치 컴퓨터에 “나 이거 할 거야!”라고 알려주기만 하는 느낌입니다. 잡다한 일 처리는 컴퓨터가 알아서 하도록 위임하고, 개발자는 문제 해결을 위해 무엇을 할 것인지에만 신경 씁니다. 이러한 성질을 명령형과 반대되는 의미로 선언형(declarative)이라고 합니다.
예를 들어 다음과 같은 요구 사항이 주어졌을 때 명령형과 선언형으로 사고하는 방식을 비교봅시다.
배열을 순회하며 빈 문자열을 걸러내고, 각 요소의 첫 글자를 대문자로 변경하라.