폴그레이엄은 스타트업을 지원하는 회사명을 와이 콤비네이터(Y combinator)라고 지었을까요.
저는 그가 사명을 Y combinator라고 지었을 때부터 그가 어떤 회사를 꿈꿨을지 옅볼 수 있을 거라고 생각합니다.
오늘 lambda calculus에서 정의하는 Y combinator를 얕게 알아보겠습니다.
그리고 이 글을 다 읽으신 후에는 그가 왜 이런 이름을 지었는지 조금은 이해가 되셨으면 좋겠습니다.
저번 기술블로그에서 lambda calculus에 대해서 배웠습니다.
실제 내용은 별 것이 없는데, 표현식 자체가 독자들에게 거부감을 느끼게 하는 것 같았습니다.
그래서 이번에는 lambda calculus를 다룸에도 표현식을 되도록이면 사용하지 않으려고 했습니다.
대신 Clojure라는 언어를 사용하려고 합니다. 이는 Lisp의 변형으로 문법이 아주 단순합니다. 물론 키워드, 예외적인 문법 등이 있지만 오늘은 필요한 문법만을 소개하겠습니다.
여러부분 설명의 간단함을 위해 중요할 수 있는 디테일한 정보들을 생략하고 설명하는 부분 참고바랍니다.
clojure의 문법은 기본적으로 아래의 형태를 가집니다.
(operator operand-1 operand-2 ...)
끝입니다. 그러면 대표적인 operator
와 자료구조를 알아보겠습니다.
함수를 생성할 때는 defn
이라는 operator
를 가집니다.
그다음부터는 operand
입니다.