람다 대수(lambda calculus)는 함수 정의, 함수 적용, 변수 치환을 통해 계산을 수행하는 형식 체계이다. 1930년대 알론조 처치가 수학기초론 연구의 일환으로 고안하였으며, 모든 계산 가능한 함수를 표현할 수 있는 튜링 완전성을 가진다. 현대 컴퓨터 과학에서 함수형 프로그래밍 언어의 이론적 토대가 되며, 논리학과 언어학 등 다양한 분야에서 응용된다.

배너 광고

역사적 배경

람다 대수는 1930년대 수학자 알론조 처치에 의해 수학기초론 연구 과정에서 소개되었다. 처치는 1936년 결정 문제(Entscheidungsproblem)를 해결하기 위해 계산 가능성의 개념을 정의하는 수학적 모델로 이를 활용하였다. 초기 체계는 논리적 오류가 발견되기도 하였으나, 이후 계산과 관련된 부분만을 추출한 '유형 없는 람다 대수(untyped lambda calculus)'와 논리적 모순을 해결한 '단순 유형 람다 대수(simply typed lambda calculus)'로 발전하였다.

기본 구조

람다 대수의 항(term)은 변수, 추상화, 적용의 세 가지 요소를 통해 재귀적으로 정의된다.

  • 변수(Variable): x,y,zx, y, z와 같은 식별자이다.
  • 추상화(Abstraction): λx.M\lambda x. M과 같이 표현하며, 변수 xx를 인자로 받는 함수를 정의한다. 기호 λ\lambda는 함수 선언을 의미한다.
  • 적용(Application): MNM N과 같이 표현하며, 함수 MM에 인자 NN을 적용하여 계산을 수행한다.

이 체계에서는 함수에 이름이 없는 익명 함수를 기본으로 하며, 여러 개의 인자를 받는 함수는 하나의 인자를 받아 또 다른 함수를 반환하는 방식인 커링(Currying)을 통해 표현한다.

변환 규칙

람다 대수에는 항을 변형하고 계산하기 위한 주요 규칙이 존재한다.

  1. 알파 동치(α\alpha-equivalence): 이름 충돌을 방지하기 위해 묶인 변수의 이름을 변경하는 규칙이다. 예를 들어 λx.x\lambda x. xλy.y\lambda y. y는 동일한 함수로 간주한다.
  2. 베타 축약(β\beta-reduction): 함수 적용을 실제 치환 연산으로 대신하는 과정이다. (λx.M)N(\lambda x. M) NMM 내부의 xxNN으로 치환한 결과로 변환한다.
  3. 에타 변환(η\eta-conversion): 두 함수가 모든 인자에 대해 동일한 결과를 내면 두 함수를 같다고 보는 외연성의 개념을 다룬다.

베타 축약을 통해 더 이상 축약할 수 없는 상태에 도달하면 이를 '정규형(normal form)'이라고 한다. 처치-로서 정리에 따르면, 정규형이 존재할 경우 그 결과는 유일하다.

계산 이론 및 응용

람다 대수는 앨런 튜링의 튜링 기계와 계산 능력이 동일하다는 사실이 증명되었다. 이는 람다 대수로 표현 가능한 모든 함수가 계산 가능하다는 것을 의미한다. 람다 대수 내에서는 자연수(처치 수), 불(Boolean) 진릿값, 산술 연산, 조건문, 재귀 함수 등을 모두 함수 형태로 부호화하여 표현할 수 있다.

현대 컴퓨터 과학에서 람다 대수는 리스프(Lisp), 하스켈(Haskell), ML 등 함수형 프로그래밍 언어의 이론적 근간이 된다. 또한 프로그래밍 언어의 의미론 연구와 자료형 이론(Type Theory)의 발전에도 핵심적인 역할을 수행한다.

참고 자료

5
람다 대수람다 대수 람다 대수(λ代數, 영어: lambda calculus) 또는 λ-대수 또는 람다 계산(λ計算) 또는 람다 계산법(λ計算法)은 추상화와 함수 적용 등의 논리 연산을 다루는 형식 체계이다. 람다 대수의 항은 변수와 추상화 및 적용 연산을 통해 구성되며 (비순수 람다 대수에서는 상수 역시 구성에 참여한다), 추상…https://ko.wikipedia.org/wiki/%EB%9E%8C%EB%8B%A4_%EB%8C%80%EC%88%98람다 대수 - 나무위키람다 대수 - 나무위키 최근 변경 최근 토론 특수 기능 # 람다 대수 최근 수정 시각: 2025-12-01 10:23:18 편집 편집 이용중인 IP는 문제가 자주 발생하거나 공공 IP 대역이므로 로그인이 필요합니다.(이 메세지는 같은 인터넷 공급업체를 사용하는 다른 누군가로 인해 발생했을 가능성이 높습니다.) (#232…https://namu.wiki/w/%EB%9E%8C%EB%8B%A4%20%EB%8C%80%EC%88%98함수형 프로그래밍을 위한 람다 대수 입문 번역 | 이태화 아카이브함수형 프로그래밍을 위한 람다 대수 입문 번역 | 이태화 아카이브 ## 일러두기 본 포스팅은 Raul Rojas의 A Tutorial Introduction to the Lambda Calculus을 한글로 번역한 문서입니다. 의역이 많이 포함되어 있습니다. 잘못된 번역은 댓글로 알려주시면 감사하겠습니다. ## 개요 이…https://studyingeugene.github.io/functional-programming/introduction-to-lambda-calculus/람다 계산 : Lambda Calculus람다 계산 : Lambda Calculus Lambda Calculus 람다계산법은 함수 정의, 함수 응용, 재귀 (function definition, function application, recursion) 등을 조사하기 위해 설계된 형식 시스템이며 1930 연대에 Alonzo Church와 Stephen Klee…http://www.aistudy.com/computer/lambda_calculus.htmLambda Calculus | ziwon.github.ioLambda Calculus | ziwon.github.io # Lambda Calculus ## 2013-10-22 람다 대수는 결정문제(decision problem)를 풀기 위해, 계산가능성(computability)의 개념을 정의한 수학적 모델로 1936년 알로존 처치(Alonzo Church)가 고안하였다. 좀…https://ziwon.github.io/post/lambda-calculus/

관련 문서