함수형 언어

최근 편집: 2023년 1월 6일 (금) 19:08

함수형 언어는 수학적 증명과정을 컴퓨터 프로그램 문법에 적용하는 것을 기반으로 삼고 있는 프로그래밍 패러다임으로, 짧은 코드로 강건한 프로그램을 짤 수 있어서 주목받는다. 대표적인 언어로는 Lisp, Scheme, ML, Haskell, Scala 등이 있다.

특징

함수형 언어는 기본적으로 보관되는 변수(즉, 메모리에 적재되는 데이터)라는 개념을 채택하지 않는다. 절차적 프로그래밍에서 요구되는 데이터 입/출력의 개념을 함수형 언어는 정의역/치역 개념으로 대체한다. 즉, 함수형 패러다임에서 프로그램은 수많은 정의역과 치역이 여러 개의 함수로 그물망처럼 연결된 함수 체계이며, 컴퓨터 프로그램이란 함수를 풀이하여 해를 도출하는 것을 목적으로 갖는다. 따라서, 원칙적으로 함수형 언어의 프로시저(즉, 함수)는 정의역에 따라 해가 결정되기 때문에, 모든 함수는 (가능한 한) 부작용(side-effect)이 없어야 한다. 예컨대, C 계열 언어의 while(*t++ = *s++);[주 1]과 같은 표현은 후치연산자 ++가 부작용을 발생시키기에, 함수형 언어에서는 권장되지 않는다.

함수형 패러다임에서 채택한 람다 표현식 등의 개념은 후일 다른 프로그래밍 패러다임에서 광범위하게 수용되고 있다.

부연 설명

  1. 문자열을 복사하는 코드이다.