5 ms·
In which the author gets really excited about idioms in Clojure that don't seem that exciting.
by nardi 13y ago
In which the author gets really excited about idioms in Clojure that don't seem that exciting.
- Ygg2 13y agoAgreed. This did nothing to make me really excited about Clojure or Lisp. A demonstration of differential was a better example than this.
- cjohansen 13y agoIt's not really intended as an "evangelist" post. It's just describing some details that makes a big difference to me in my day-to-day work. I guess it's more of a "hey, fellow Clojure programmer, don't you agree that these details really put the icing on the cake?" kind of post. Maybe the other post I posted the same day would give newcomers a better impression of what using Clojure is like in practice (lots more code, more in-depth): http://cjohansen.no/building-static-sites-in-clojure-with-stasis http://cjohansen.no/building-static-sites-in-clojure-with-st...
- agumonkey 13y agoThe 'to die for' is too strong. ps: what is the min* function ? can't find anything on google
- cjohansen 13y agoIt's an expression of enthusiasm, don't take it so seriously. min* is like min but takes a list, it's not built in. Yes, I know about apply, I still prefer min* to (apply min) in certain cases.
- agumonkey 13y agoThanks, I was just affraid I'd missed some kind of builtin macro or convention. At one point I thought that -> would rewrite function #"\*$" to decorate them with apply ... paranoid noobies you know. ps: you're a very enthusiastic person ;)
- wging 13y agoOne thing that will help a lot: type (source f) to see the source code for a function or macro. Also (doc f) for documentation.
- jnazario 13y agothanks for writing it. i have yet to grok or embrace Lisp-family languages, but your post was still fun to read.
- thom 13y agoI think the article is overly focused on small, pragmatic syntax issues without explaining how the underlying language and runtime have _enabled_ them. It might be interesting to discuss _why_ keywords or maps or sets can work as functions, by implementing the IFn interface. Perhaps explain why homoiconicity and macros enable things like thread-first and -last, and talk about how we can implement our own reader literals.