Functional Language (Applicative Language)
함수형 언어 (적용형 언어)
- 함수의 Evaluation(평가)과 Application(적용)을 기본으로 하는 언어이다.
- 함수만을 이용하는 언어이기 때문에 변수, 배정문이 없는 구조를 보인다.
- 반복 연산은 Recursion을 통해 구현한다.
ex) LISP 등
Ex. Modula-2 Code
// GCD(Greatest Common Divisor)를 구하는 Modula-2 프로그램 예시
PROCEDURE gcd (u, v : INTEGER) : INTEGER ;
BEGIN
IF v = 0 THEN
RETURN u;
ELSE
RETURN gcd(v, u MOD v); (* Recursive를 통해 반복을 구현한다. *)
END;
END gcd;
※ 위 코드는 Modula-2를 통해 함수형 프로그래밍 기법을 최대한 적용한 형식이다. 완벽한 함수형 프로그램이라 보기 어렵다.
Ex. Lisp Code
(define (gcd u v) (if ( = v 0 ) u (gcd v (remainder u v))))
※ 위 코드는 Lisp를 이용한 완전한 함수형 프로그램이다.