개강한 공대생 2024. 10. 27. 16:25

에타 축약(η-reduction)은 함수의 본질적인 동작이 똑같다면, 굳이 복잡하게 표현할 필요 없다는 개념이다.

두 함수가 같은 결과를 반환한다면, 그 함수들은 같은 함수로 볼 수 있다라는 아이디어다

결국, 필요 없는 중간 단계를 줄여서 간단한 함수로 만드는 과정이 에타 축약이다.

람다 계산법의 중요한 개념이다.

 

η 축약의 기본 형식

{fun {n} {e n}}  ≡ e    (단, n이 e 안에서 자유롭게 사용되지 않을 때)

즉, 함수가 인자 n을 받아서 그걸 그냥 함수 e에 넘겨주는 역할만 한다면,
굳이 이렇게 복잡하게 쓸 필요 없이 e 자체로 축약할 수 있다.

다음은 또다른 예제다.

{fun {n} {{fun {x} x} n}}  ≡  {fun {n} n}

 

이런식으로 축약이 가능하려면 인자가 내부에서 "자유롭게(free)" 사용되지 않아야 한다.