데이터는 코드다 (2016)
Church 인코딩과 Boehm-Berarducci 인코딩을 활용하여 순수 람다 계산법(lambda calculus) 만으로 데이터 타입과 연산을 구현하는 방법을 소개합니다.
Annah 컴파일러는 이러한 인코딩을 실제 코드로 구현하며, 불리언, 자연수, 리스트 등 다양한 데이터 타입을 함수로 표현하고, 조건문, 산술 연산, 논리 연산 등을 순수 함수형으로 처리할 수 있게 합니다.
이 접근법은 타입 추론 없이도 명시적 타입 추상화(type abstraction) 와 타입 적용(type application) 을 통해 다형성(polymorphism)을 구현하며, 모든 데이터와 연산을 코드로 모델링하는 완전한 함수형 프로그래밍 환경을 제공합니다.
또한, Annah는 Haskell과 호환되는 고급 기능(예: do 표기법, 패턴 매칭, 데이터 타입 선언)을 지원하며, 이를 통해 순수 람다 계산법 기반의 프로그래밍이 실제로 가능함을 실증합니다.
이 프로젝트는 함수만으로 모든 데이터 구조와 연산을 표현하는 이론적·실용적 가치를 지니며, 관련 논문과 오픈소스 코드를 통해 람다 계산법의 깊은 이해와 실험적 언어 설계에 유용한 참고 자료가 됩니다.