[Pascal] 함수와 프로시저

[원본 링크]

파스칼의 기본 모듈 단위는 낡은 명령형 언어들이 으레 그렇듯, 함수다.
로직을 함수로 쪼개고 사용함으로써 확장성과 재사용성을 지향하는 것이다.

그리고 대개의 명령형 고대언어들이 그렇듯이, 파스칼도 함수가 두 종류로 나뉜다. 일반함수와 프로시저가 그것이다.

함수
매개변수를 받으며 반환값이 존재하는 서브루틴을 함수라고 한다. 그냥 함수다.
아래의 형태를 가진다.

function** 함수명(인자1:타입1; 인자2:타입2; ...) 반환타입;**
begin
**    ...**
ㅤ****함수명 = 반환값;
end

특히 함수 반환값의 표현이 상당히 특이하다. 함수명에 값을 대입하면 그게 반환된다.

정수 둘을 더하는 함수를 구현해보자. 간단하다. image

image 인자의 타입이 동일할 경우에는 쉼표로 묶고 타입을 한번만 쓸수도 있다. image

image 그렇다.

그럼 이제 호출해서 사용할 수 있다. image

image


프로시저
이름은 다르지만 이것도 함수의 일종이다. 간단히 말해서, 반환값이 없는 함수다.
C언어를 포함한 요즘 언어들의 void함수/void메서드와 동일하다고 보면 된다.

선언법은, 그냥 함수에서 반환값 떼고, 키워드를 function에서 procedure로 바꾸기만 하면 된다. image

image

그렇다.


참조
https://www.tutorialspoint.com/pascal/pascal_functions.htm