> Even in an impure language such as Common Lisp we frown on such LET forms
True, but as far as I know, in Common Lisp, the condition handler is always in scope of where the error happened, so I wouldn't face this problem. I also struggle to split this up into functions without making it even more complicated. I'm intrigued by the interceptor pattern mentioned, I'll have to try it out, I worry its overkill, but not sure. My opposition to turning this into a chain, is that it complects the order of things, with the work of each step. My steps are pure functions, they take inputs and return outputs. They don't know anything about the full workflow, just their transformation. My orchestrating function is the one which knows how to compose the smaller pure steps, so that it can fulfill the business process. The interceptor chain seems to still complect this a little. At least it has the steps know about each other since it relies on a common context, and expects previous steps to properly assoc the data needed by later steps. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.