let vs letfn for defining local functions in clojure?
clojure
Solution
If all I need is one or a few local functions, I `letfn` them. If I need to define a mix of functions and non-functions, I'll just use a normal `let`. `letfn`ing and `let`ing would be a very verbose way to do this.
However, if you need mutual recursion through your local functions, you'll have to `letfn` them either way.
Short version: use them when you think it looks better, and when it's convenient. There are no hard and fast rules for using either. They are just tools in the Clojure toolbox.
Have fun!
Problem
When in practice should I use `letfn` vs. `let` for defining local functions? What about cases where I want both local functions and local non-functions?