λ-Calculus - 연산의 구현

by 10315 이도이

λ-Calculus, 람다 대수란?

λ-Calculus, 람다 대수란?

: 기반적인 함수적 이론
아래의 문법과 연산만으로 모든 수학적, 컴퓨터적 연산을 구현할 수 있다.


문법
  1. 변수
  2. λ-Abstraction(람다 추상화)
  3. 적용
연산
  1. -conversion(-변환)
  2. -reduction(-축약)
λ-Calculus - 연산의 구현
λ-Calculus, 람다 대수란?

문법

  1. : 변수, 함수에서 쓰이는 매계변수를 표현

  2. : 람다 추상화, 함수를 정의. 를 변수로 받아서 을 반환
    : 를 포함하는 식

  3. : 적용, 을 적용 (이후 -축약으로 이용)

λ-Calculus - 연산의 구현
λ-Calculus, 람다 대수란?

연산

  1. : -conversion(-변환),
    이때 , -equivalent(-동치) 라고 함

  2. : -reduction(-축약), 으로 대체

λ-Calculus - 연산의 구현
λ-Calculus, 람다 대수란?

예시

λ-Calculus - 연산의 구현
λ-Calculus, 람다 대수란?

변수가 2개 이상인 람다 함수

*함수를 값으로써 반환 가능함


λ-Calculus - 연산의 구현
λ-Calculus, 람다 대수란?

Church Numeral - 숫자의 구현

◀️ Slide 2

λ-Calculus - 연산의 구현
λ-Calculus, 람다 대수란?

더하기

처치 숫자에 을 더하는 함수인 (successor)

  • 를 이용해 을 계산

λ-Calculus - 연산의 구현
λ-Calculus, 람다 대수란?

더하기

를 이용해 (addition)을 구현

  • 을 이용해 를 계산

λ-Calculus - 연산의 구현
λ-Calculus, 람다 대수란?

곱하기

를 이용해 (multiplication)을 구현

  • 을 이용해 을 계산

λ-Calculus - 연산의 구현
Church Numeral - 숫자의 구현

이외의 연산

앞과 비슷한 방법으로 아래의 연산을 구현

  • (predecessor): 연산 함수

  • (subtraction): 빼기 연산 함수
    *처치 숫자의 구현 범위가 이므로 값의 결과가 음수면 처치 숫자에서는 이 됨.

  • (division): 나누기 연산 함수
λ-Calculus - 연산의 구현
진리 연산

진리 연산

◀️ Slide 7

λ-Calculus - 연산의 구현
진리 연산


  • 두번째 행 예시

λ-Calculus - 연산의 구현
진리 연산

,

λ-Calculus - 연산의 구현
진리 연산


: 는 조건, 는 참일때() 실행, 는 거짓일때() 실행

가 참일때 1을, 거짓일때 2를 뱉는 함수

λ-Calculus - 연산의 구현
진리 연산

λ-Calculus - 연산의 구현
LOOP, 반복 연산

LOOP, 반복 연산

가장 기본적인 루프(반복문) :

λ-Calculus - 연산의 구현
LOOP, 반복 연산

-Combinator

람다 함수 에 대입

λ-Calculus - 연산의 구현
LOOP, 반복 연산

Factorial, 계승

◀️ Slide 11

λ-Calculus - 연산의 구현
마치면서...

마무리

합성함수에 관해 수학시간에 배우게 되었다. 나의 꿈인 프로그래밍과 관련된 컴퓨터 토픽과 함수와 관련한 내용을 탐구하던 와중, 람다 대수에 관해 알게되었고, 그중에서도 합성 함수와 비슷한 개념으로 숫자와 진리 값 등을 정의하는 등 흥미로운 부분이 많아서
이렇게 발표하게 되었다.
고1에 들어오면서 조각적 정의로 쓰여진 함수등 복잡한 함수가 많아졌는데,
람다 대수를 탐구하며 함수에 관련한 이해가 늘어난 것 같다.

출처

  • WIKIPEDIA, Lambda Calculus
  • Barendregt, Hendrik Pieter, Introduction to Lambda Calculus
  • Cardone, Felice and Hindley, J. Roger, History of Lambda-calculus and Combinatory Logic
  • Raúl Rojas, A Tutorial Introduction to the Lambda Calculus
λ-Calculus - 연산의 구현
마치면서...

λ-Calculus

by 10315 이도이

λ-Calculus - 연산의 구현

이제 함수 그 차제가 값으로 반환 될 수 있다는 사실을 알게 되었으니, 더욱 심화 단계의 람다 대수에 진입할 수 있습니다.

두 처치 숫자가 같거나 한쪽이 큰지 알려면 한쪽에서 다른 한쪽을 뺀 뒤 $\text{IsZero}$ 함수로 연산하여 알 수 있다.

알파-동치에 의해 처음 식과 베타-축약의 결과가 같으므로, 위 람다 항은 무한히 반복된다. 하지만, 위 루프는 실제로 사용할 쓸모가 없다. 단순 반복 이외에 다른 기능을 하지 못하기 때문이다.