-
에타 축약이란?컴공지식/프로그래밍언어론 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)" 사용되지 않아야 한다.