thefarmersfront / helloworld-comment

Kurly Dev Blog Comment Repository
2 stars 1 forks source link

blog/y-combinator/ #32

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

왜 폴 그레이엄은 회사 이름을 Y Combinator라고 지었을까 - 컬리 기술 블로그

http://thefarmersfront.github.io/blog/y-combinator/

dongwooklee96 commented 3 years ago

좋은 글 감사합니다!

zno5 commented 3 years ago

함수형 언어에서는 유난히 재귀호출을 많이 사용해서 개인적으로 위험?을 느낍니다. 스택오버플로 발생할까봐. . 왠만하면 재귀호출을 쓰지 말라 하는 편인데. cpp만 해서… 클로저에선 재귀호출을 사용하면 컴파일러가 스택오버플로 발생하지 않게 일반적인 루프로 만들거나 스택 크기를 키워서 이 문제를 방지하는 건가요?

ssisksl77 commented 3 years ago

@zno5 님 안녕하세요! 함수형 프로그래밍을 지원하는 언어들은 기본적으로 tail-recursion(꼬리재귀)를 지원하여 스택의 크기를 키우지 않고 사용할 수 있습니다.

Clojure의 경우는 기본적으로 JVM 위에서 올라가는 언어입니다. 그렇기 때문에 이런 꼬리재귀를 기본적으로 제공하지는 않지만 특별한 키워드 recur를 제공하고 있습니다. 이 recur를 이용한 재귀는 스택에 부담이 없습니다.

위 코드에서는 이해를 돕기 위해 함수 이름을 직접적으로 호출하는 재귀함수를 만들었지만 실제로는 이 recur함수를 이용한 재귀를 많이 사용합니다.

관련 링크를 함께 공유드리겠습니다. https://clojure.org/about/functional_programming#_recursive_looping https://clojure.org/reference/special_forms#recur

leechungkyu commented 3 years ago

예상하시는게 맞지 않을까요?! ^^;; 폴 그레이엄은 수필가라고도 하더라고요. 현재도 꾸준히 한달에 1~2개씩 글도 올라오고 있더라고요. http://www.paulgraham.com/articles.html