함수형 프로그래밍 소개
하스켈 2024. 5. 29. 23:12함수형 프로그래밍을 통해 얻을 수 있는 개선 사항
절차형 프로그래밍 언어에서 함수란 특정 명령/절차의 나열에 붙은 라벨에 불과하다.
함수형 프로그래밍에서 함수란 주어진 입력 값만으로 단지 하나의 출력되는 값을 결정하는 규칙인 수학적 의미의 함수이다.
입력에 대한 결과는 하나의 출력으로 나와야 하며, 같은 입력에 대해서는 같은 출력을 기대할 수 있다.
아래와 같은 코드는 함수형 프로그래밍에서의 함수가 아닌데, 그 이유는 외부의 상황에 따라, 콘솔 출력의 결과가 결정되기 떄문이다.
void say(const string& something) {
std::cout << something << endl;
}
이처럼 프로그래밍에서 상태를 참조하거나 상태에 변화를 줌으로서 다음 번 이후의 결과에 까지 영향을 미치는 효과를 부작용(side effect)이라고 한다.
예를 들어, 입출력은 언어의 외부 세계의 상태에 간섭하므로 부작용이 된다.
프로그래밍에서의 패러다임은 문제를 어떤 관점으로 바라볼 것인지에 관한 것이다.
여러 패러다임이 있고, 각 패러다임을 간단히 알아보면 다음과 같다.