Each week, we discuss a different topic about Clojure and functional programming.
If you have a question or topic you'd like us to discuss, tweet @clojuredesign, send an email to [email protected], or join the #clojuredesign-podcast
channel on the Clojurians Slack.
This week, the topic is: "trying again". We throw our code in a loop, and it throws us for a loop.
recur
from catch
?recur
?It's a lot like having a project on a workbench. You have all of the tools and all the information laid out before you on that workbench. Nothing is tucked in a drawer or inside a cabinet.
That's a very important lesson for any developer: you can always stop—at least after it's working.
Nothing in the world is solved except by adding another level of abstraction.
I was not expecting that level of mutation! I was expecting a Kafka log written in stone!
The positive is it has everything. The negative is it has everything.
We would like more loop-native code inside of our cloud-native application.
Are you suggesting that just because we can, it doesn't mean we should? We're programmers! If the language lets us do it, it must be a good idea!
One of the reasons why I like Clojure is because it specifically tells me that I can't do some things that are bad to do.
All of the context is in one map. It has everything in it. One map to rule them all!
Might this be the fabled "single application state"?
We have the thinking function, the doing function, and the assimilate function.