더북(TheBook)

[표 1.2.14]에서 네 개를 제외한 함수 모두 순수 함수(pure function)이다. 순수 함수는 동일한 인수를 받으면 언제나 동일한 값을 반환하며, 외부 환경에 미치는 부작용(side effect)이 없는 함수이다. random.random()random.randrange()는 호출할 때마다 다른 값을 반환하므로 순수 함수가 아니며, stdio.write()stdio.writeln()은 표준 출력 장치에 문자열을 출력하는 부작용이 있으므로 순수 함수가 아니다.

math 모듈에서는 원주율과 자연로그를 상수인 math.pimath.e로 정의하고 있으므로, 프로그램 안에서 이 값이 필요할 때 상수를 사용할 수 있다. 따라서 math.sin(math.pi/2)1.0을 반환하고(math.sin()은 라디안 값을 받는다) math.log(math.e)1.0을 반환한다(math.log()의 기본값 밑수가 e이다).

최신 프로그래밍 언어에서는 이와 같은 API 문서를 온라인으로 제공한다. 파이썬 전문 프로그래머들이 참조하는 API 문서가 온라인으로 제공되지만, 이 책의 예제 코드에서 사용하는 API는 [표 1.2.14]와 같은 표를 이용해 본문에서 자세히 설명하므로, 예제 코드를 이해하기 위해 온라인 문서를 참조할 필요는 없을 것이다.

그리고 2장과 3장에서는 우리가 사용할 API를 정의하고 직접 구현하는 방법을 설명한다.

설명 간소화 | 이제부터 함수와 함수 호출에 관련된 파이썬 문장을 설명할 때 말을 줄이고자 한다. 예를 들어 math.sqrt(4.0) 코드를 설명할 때 “math.sqrt(4.0)2.0을 (값으로 하는 float 객체)(에 대한 참조를) 반환한다”에서 괄호 안에 들어가는 부분은 생략한다. 따라서 math.sqrt(16.0)을 설명할 때 “16.0 값을 가진 float형 객체에 대한 참조를 math.sqrt()에 전달한다. 이 함수는 4.0 값을 가진 float형 객체에 대한 참조를 반환한다”고 장황하게 나열하지 않고, “sqrt(16.0)4.0을 반환한다”고 간단히 설명한다. 그리고 ‘함수가 반환하는 객체에 대한 참조’를 설명하기 위해 간단히 반환 값(return value)이라는 용어를 사용한다.

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