왜 폴 그레이엄은 회사 이름을 Y Combinator라고 지었을까
남영환, 이종립 · 컬리 · 컬리 기술 블로그
소개
왜 폴 그레이엄은 회사 이름을 Y Combinator라고 지었을까
AI 핵심 요약
함수형 프로그래밍에서 재귀는 보통 함수가 자기 이름을 참조하지만, 람다 계산법만으로는 이런 이름 참조가 자유 변수 문제를 일으킨다. 글은 Clojure의 함수·람다 문법과 콤비네이터 개념을 소개한 뒤, 자기 자신을 적용하는 Ω 콤비네이터에서 출발해 팩토리얼 재귀를 구성한다. 이어 Y Combinator를 구현해 재귀 로직을 함수에서 분리하고, 자기 참조 없이도 팩토리얼을 계산할 수 있음을 Clojure와 JavaScript 예제로 보여준다. 저자는 Y Combinator가 다른 함수를 재귀적으로 확장하는 원리라는 점에 착안해, 폴 그레이엄이 스타트업을 성장시키는 회사의 이름으로 이를 택했을 가능성을 제안한다.
- 콤비네이터는 자유 변수를 포함하지 않고, 함수 안에서 사용하는 변수는 매개변수로 바인딩되어야 한다.
- Y Combinator는 함수에 자기 자신을 직접 참조하지 않고도 재귀를 가능하게 하는 고정점 콤비네이터다.
- Clojure에서는 함수도 값이므로 `fn`으로 익명 함수를 만들고 `def`로 이름을 연결할 수 있다.
- 자기 자신을 자기 자신에 적용하는 Ω 콤비네이터는 무한 재귀를 만들며, 실행 시 호출 스택이 넘칠 수 있다.
비슷한 학습 자료
ㅎㅖ어져서 팝니ㄷr ☆: LLM과 임베딩 유사도로 빠르게 패턴을 바꾸는 업자 잡아내기 | 2024 당근 테크 밋업
당근테크 · YouTube
웹/웹뷰 코드 합치면 개발 2배 빨라지는 거 아니었어요? | 2024 당근 테크 밋업
당근테크 · YouTube
LLM을 활용한 유저 프로파일링과 개인화 추천
if kakao · YouTube
우리는 왜 공통 라이브러리를 만들기 시작했나
임진호 · 컬리 기술 블로그
Lambda Calculus에 대해 알아보자
남영환 · 컬리 기술 블로그
개인화 추천 시스템 1편 - 유저의 행동은 “언어”일까? : Collaborative Embedding 구축기 (feat. Knowledge Distillation)
명우민 · 컬리 기술 블로그