This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-06-13
Channels
- # admin-announcements (11)
- # beginners (16)
- # boot (171)
- # cider (1)
- # clojure (31)
- # clojure-france (2)
- # clojure-italy (3)
- # clojure-korea (12)
- # clojure-russia (1)
- # clojure-sg (4)
- # clojure-uk (3)
- # clojurebridge (3)
- # clojurescript (52)
- # code-reviews (1)
- # datomic (1)
- # editors (3)
- # events (1)
- # jobs (13)
- # ldnclj (3)
- # reagent (6)
- # sneer (1)
요즘 클로저를 쓰면서 느낀 건데, 클로저나 lisp 계열 언어들을 짧게 표현하면 ultimate abstraction language 라는 단어가 떠오릅니다. 어떤 언어나 추상 기능은 다 있고, 각자 추구하는 컨셉이 있지만, 저는 클로저의 그것이 ultimate 하다고 느낍니다.
이게 좋은 기능인지 나쁜 기능인지는 사람마다 느낌이 다르겠지만 예를 한번 들어보면 Scala 같은 언어는 타입 체킹 및 규약이 많습니다. 허나 클로저는 파라미터 심볼 밖에 없지요. 파라미터를 어떻게 배치할 건가에서도 & 같은 기능이 큰 자유도를 줍니다.
추상의 정의가 중요하지 않은걸 떼내고 중요한 것만 뽑아낸다는 의미에서, 그런 의미에서 클로저는 ultimate abstraction language 란 생각이 듭니다. 함수명과 인자 그게 다입니다. 물론 가끔 너무 중요한 거만 뽑아낸 것들이 많아서 알아야 하는 기존 가정들이 많은 편인데 원래 한쪽으로 취하면 한쪽으로 버려야 하는 거라 생각합니다.^^