과학자를 위한 함수형 프로그래밍 - 2. What is FP?
함수형 프로그래밍이 뭔가요? 여기서는 아무런 주문 영창이 없습니다만, 문제가 하나 있습니다. 함수를 호출할 때마다 값이 달라진다는 것이죠. 우리가 배운 수학에서의 함수의 정의는 같은 정의역의 원소에 대해서는 항상 같은 값이 나와야 하니 이것 역시 수학에서의 함수와 다른 경우입니다. 자, 그럼 우리는 과학자들답게 함수를 효과적으로 구분할 수 있는 정의를 도입해야 합니다. 함수형 프로그래밍이란, 이름 그대로 함수 위주의 프로그래밍 패러다임을 의미합니다. 조금 더 덧붙이자면, 프로그램 자체를 함수로 보는 관점이라 할 수 있습니다. 프로그래밍 패러다임에는 크게 3가지가 있습니다. 명령형 프로그래밍 객체지향 프로그래밍 함수형 프로그래밍 이들은 프로그램이나 어떠한 문제 자체를 볼 때, 어떤 관점을 취할 것인가로 나누어집니다. 명령형은 프로그램을 " 컴퓨터가 수행해야 할 명령의 나열 "로 보고, 객체지향은 프로그램을 " 객체와 그것들과의 메시징 "으로 봅니다. 마찬가지로 함수형은 프로그램을 " 함수 "로 취급하는 패러다임입니다. 음? 원래 프로그래밍은 함수로 구성되지 않나요? 맞습니다. 다만, 함수형 프로그래밍은 일반적인 프로그래밍에서의 함수가 아닙니다. 조금 다른 함수 함수형 프로그래밍의 함수는 기존 프로그래밍에서 일반적으로 사용하는 함수와는 조금 다릅니다. 함수형에서의 함수는 오히려 수학에서 쓰이는 함수와 같습니다. 두 개가 어떻게 다르냐구요? 우리는 x에다가 2를 곱하라는 함수는 사용하지만 x에다 2를 곱하고 "hello, world!"를 외쳐라! 라는 함수는 사용하지 않죠. 이를 코드로 예를 들어 봅시다. # python3 def double(x): return 2 * x 위의 파이썬 함수는 당연하게도 수학에서의 함수와 같습니다. 단순히 x를 넣으면 2x가 나오는 함수니까요. # python3 def doubleWithHello(x): pri...