
왜 폴 그레이엄은 회사 이름을 Y Combinator라고 지었을까
두줄요약
Clojure와 JavaScript 예제로 Combinator와 이름 없는 함수의 재귀를 설명했습니다.\nY Combinator가 자기 참조 없이 재귀를 만드는 고정점 조합자임을 살펴봤습니다.
구조와 흐름
- Clojure의
defn,fn,def,if문법과 factorial 예제로 함수·람다·재귀의 기본 구성 소개 - 자유 변수가 없는 Combinator의 정의와 I·K Combinator의 동작을 Clojure·JavaScript 코드로 비교
- 자기 적용
(x x)기반의 Ω Combinator에서 이름 없는 함수의 무한 재귀 구조 도출
선택 이유
- 자기 참조 없이 재귀 호출을 구성하는 고정점 조합자 Y Combinator의 원리
- 재귀 단계만 분리한 factorial 함수에 Y Combinator를 적용해 재귀 기능 위임
- 스타트업을 재귀적으로 증폭시키는 의미와 연결한 Y Combinator 사명 해석
주의할 점
- 자기 적용 함수의 무한 전개에 따른 호출 스택 초과 가능성
- 람다 계산만으로 프로그램의 무한 루프 여부를 판별할 수 없는 정지 문제
