clojure-miami 2016-01-28

cool, spread the word this is the best channel to hang out in for Miami Clojure Meetup.

there are lots of other interesting channels, mainly for asking questions about Clojure (#clojure), ClojureScript (#clojurescript) setting up Emacs and Cider #emacs and #cider respectively for Clojure/ClojureScript development etc.

there’s also #events and #jobs which may be of interest...

oh and #code-reviews which are a great way to get constructive criticism

@tailrecur has joined the channel

@maddie: may be of interest to you http://www.clojurebridge.org/

Just signed up! simple_smile

re: macroexpand

there are two macro-expansions available:

macroexpand-1 or macroexpand-all

a macro is a code-rewriter or template engine

think of it like a super-powerful search-and-replace for code

kind of how the C language has a pre-processor which handles #define statements

Clojure’s macros are evaluated at “compile” time

and they re-write your code (usually to a longer version)

macros can generate code that contains. … other macros

this re-writing (or expansion) is recursive

but eventually you will hit something truly “primitive” like a function

macroexpand-1 only does 1 level of macro rewriting

macroexpand-all will go all the way down the rabbit hole and do all of the recursive expansion till you ground out