더북(TheBook)

3.1.5 인자를 여럿 받는 함수 사용하기

지금까지는 인자를 하나만 받는 함수에 대해 이야기했다. 함수가 인자를 여럿 받는다면 어떻게 될까? 간단히 말해, 인자가 여럿 있는 함수는 없다. 함수의 정의를 기억하는가? 함수는 소스 집합과 타깃 집합 사이의 대응 관계다. 함수는 둘 이상의 소스 집합과 타깃 집합 사이의 대응 관계가 아니다. 함수는 인자를 여럿 받을 수 없다. 하지만 두 집합의 곱(product)도 집합이다. 이런 곱집합을 정의역으로 하는 함수를 만들면 여러 인자를 받는 함수처럼 보인다. 다음 함수를 살펴보자.

f(x, y) = x + y

이 함수는 N × N에서 N으로 가는 대응 관계이고 함수다. 하지만 이 함수의 인자는 N × N의 원소 하나뿐이다. N × N은 모든 정수 쌍의 집합이다. 이 집합의 원소는 정수의 쌍이고, 쌍은 여러 원소의 조합을 표현할 때 사용하는 튜플(tuple)이라는 개념의 특별한 경우다. (pair)은 원소가 두 개인 튜플이다.

보통 튜플을 괄호로 둘러싸서 표현한다. 그래서 (3, 5)N × N 집합의 원소다. 함수 f에 이 튜플을 적용할 수 있다.

f((3, 5)) = 3 + 5 = 8

이런 경우 중복된 괄호를 생략해 단순하게 쓰는 것이 일반적인 관행이다.

f(3, 5) = 3 + 5 = 8

하지만 이렇게 썼다고 해도 이 함수는 튜플을 인자로 받는 함수지 인자가 두 개 있는 함수가 아니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.