Someone implements ilet every couple of months on the mailing list. It gets a little support as like "well that could be handy", but the consensus seems to be that the value it adds is not much greater than the complexity it adds. So some people keep their own private versions that they use for whatever, but it's unlikely to make it into the language.
On Apr 14, 4:39 pm, icemaze <icem...@gmail.com> wrote: > I was developing this project of mine, which has an intricate business > logic, and I wrote a macro that makes programming this kind of stuff > more comfortable. It's called "ilet", which stands for "implicit let". > The name is probably no longer appropriate, since I added more > features to it, but I can't make up anything better right now. > > I'd really appreciate it if you could dissuade (or persuade) me from > posting this to clojure-dev for inclusion in contrib. I need to know > if this could be useful to someone besides me. > > Here's the rationale of the ilet macro. (Warning: the examples are > silly. See below for a real world example.) > > We have "->" in Clojure because it lets you do dataflow-programming- > like manipulations. The first version of ilet was used in a similar > way, but it simply bound a symbol ($). It works like "->" but it's > more flexible, because you can put the value of the previous > expression wherever you want (e.g., seehttp://pastebin.com/g7k8wK4a). > > This is nice, but it's often useful to bind symbols explicitly. Using > a "let" inside an "ilet" is clunky, so I added this capability inside > "ilet" itself. If you write [symbol] [expression], ilet interprets > that as an explicit binding (seehttp://pastebin.com/2VJ8D738). > > Finally, I wanted to be able to interrupt this kind of calculations. > Unfortunately, Clojure doesn't provide any return-like constructs: > you'd need to use if's and cond's. So I added a new syntax to ilet: > "<" [condition] [expression] > where if [condition] is true, the value of the whole ilet expression > is just [expression] (seehttp://pastebin.com/np2M9kZr). > > I hope my explanation was clear, in spite of my poor English. > > This is the definition of the ilet macro:http://pastebin.com/nHLifsu3 > > And this is a real world example, straight from my > repository:http://pastebin.com/xGQT1c5h > > Thank you all for your input! -- 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