Programming With Nothing (Ruby Proc-only Computing)
Source
Evernote/Technote scraps/Programming With Nothing.md
Summary
이 문서는 Ruby 언어에서 Proc.new와 Proc#call 기능만을 남기고 나머지 모든 데이터 타입(숫자, 문자열, 배열 등) 및 제어 구조(if, while 등)를 제거했을 때, 순수한 Proc(함수)만으로 어떻게 계산 가능한 시스템을 구축할 수 있는지 탐구합니다. 이는 람다 계산(Lambda Calculus)의 개념을 Ruby 문맥에서 구현한 것으로, Church Encoding을 통해 숫자, 불리언, 리스트, 문자열을 Proc로 표현하고 연산자를 정의하여 실행 가능한 프로그램을 작성하는 과정을 다룹니다. 저자는 이를 ‘Ruby를 망치는 게임’이라고 부르며, 실제 소프트웨어 공학적 조언이 아닌 언어의 본질과 추상화에 대한 실험적 탐구임을 명시합니다.
Key Points
- Ruby의 모든 기능 중
Proc생성과 호출만 허용하는 극단적인 제약 조건 설정 - 다중 인자 함수를 단일 인자 함수의 중첩(Currying)으로 변환하여 처리
- Church Encoding 기법을 사용하여 숫자, 불리언, 리스트, 문자열을 Proc로 표현
- 제어 흐름(조건문, 반복문) 없이 순수 함수 조합만으로 논리 연산 및 데이터 처리 구현
- 이 실험은 실용적 코딩 가이드가 아닌, 프로그래밍 언어의 최소 단위와 추상화 능력에 대한 개념적 탐구임