함수는 기계다.
프로그램 언어관련 책에서 함수(function)에 대한 설명을 할 때, 그림과 비슷한 그림을 가지고 설명을 합니다.

그림을 보면 함수는 일종의 기계입니다. 기계는 어떤 입력(input)을 하면 정해진 대로 움직이죠. 그리고 결과물을 내놓습니다. 이것을 출력(output)이라고 합니다. 예를 들어 전자레인지는 안에 무언가를 넣으면 뜨겁게 데워져 나오는 기계입니다. 입력에 1을 더하는 프로그램이 있다고 한다면, 우리가 어떤 수를 넣던지 컴퓨터는 입력한 수에 1을 더해서 출력을 할 것입니다. function이라는 이름도 그런 관점에서 바라본다면, 정해진 기능을 수행하는 기계라는 의미로 받아들일 수 있을 겁니다. 그래서 수학자들은 수를 집어넣으면 다른 수가 나오는 기계를 함수라는 이름으로 부르기로 결정했습니다. 우리도 앞으로 이 기계를 함수라고 부르도록 하죠.
새로운 함수의 발명
우리가 아는 연산인 더하기, 곱하기만을 가지고 새로운 함수를 만들어보도록 하겠습니다.
- 아주 단순한 함수: 수를 하나 집어넣으면 똑같은 수가 나온다.
- 더하기 1 함수: 수를 하나 집어넣으면 1을 더한 수가 나온다.
- 곱하기 2 함수: 수를 하나 집어넣으면 2를 곱한 수가 나온다.
- 제곱 함수: 수를 하나 집어넣으면 그 수에 다시 그 수를 곱한 수가 나온다.
이 중에서, 곱하기 2 함수를 좀 더 자세히 살펴보도록 하겠습니다. 곱하기 2 함수의 동작을 자세히 살펴보면 다음과 같이 동작하는 것을 알 수 있습니다.
- 3을 넣으면 6이 나오는 기계
- 50을 넣으면 100이 나오는 기계
- 1.001을 넣으면 2.002가 나오는 기계
이제 곱하기 2 함수가 어떻게 동작하는지 알 수 있을 겁니다. 어떤 수를 집어 넣든지 거기에 곱하기 2를 해서 뱉어내고 있습니다. 그런데 문제가 하나 있습니다. 지금까지의 내용을 말로 쓰려고 하니까 너무 길기도 하고 귀찮습니다. 좀 더 간단한 방법을 찾아보죠.