
백엔드
왜 폴 그레이엄은 회사 이름을 Y Combinator라고 지었을까
두줄요약
Clojure와 JavaScript 예제로 Combinator와 이름 없는 재귀를 단계적으로 설명했습니다.\nY Combinator가 자기 참조 없이 재귀를 만드는 고정점 조합자임을 보여줍니다.
구조와 흐름
- Clojure의 함수 정의·람다·조건문 문법을 바탕으로 factorial 예제 구성
- 자유 변수가 없는 함수인 Combinator와 I·K Combinator 소개
- 자기 적용
(x x)기반의 Ω Combinator에서 이름 없는 재귀 표현으로 전개 - 고정점 조합자인 Y Combinator에 재귀 본문을 전달해 factorial 계산
핵심 내용
- Y Combinator를 자기 참조 없이 재귀를 구성하는 람다 계산식으로 설명
factorial-final과 Y Combinator의 결합으로 재귀 호출 책임 분리- Y Combinator 명칭을 스타트업의 재귀적 증폭이라는 비유로 해석
주의할 점
- Ω Combinator 실행 시 종료 없는 자기 적용과 호출 스택 초과 가능성
- 람다 계산식의 프로그램 종료 여부 판별과 정지 문제의 연결
