Fork me on GitHub

I see function names like put! or <! etc. What does the "!" exclamation mark mean? And when should I name my own functions with this character appended?


core.async has its own peculiarities around those functions too — the single ! means non-blocking (must be used inside a go block/loop) and the double !! means blocking.


in a macro, i have a let block where i put some expressions in a map. within the returned quasi-quote expression, i want to fetch one of those expressions from the map without resolving it, and then resolve it later. is that possible?


That doesn't parse for me


Something to keep in mind is macros usually generate code that does things, they don't do things


let me think on how best to reword this, then. the solution i've found tonight is to wrap the expressions in a function, and then call that function when i need it, but idk if that's the best method


What are you trying to do?