Rather than start with the code you are trying to duplicate, consider the data structure(s) that you have as input and the data structure you want to end up with.
It's certainly possible to emulate the kind of nested loop structure you are asking about in Clojure, but most likely it's not how you'd structure the solution in the first place. For one, the Ruby example heavily depends on mutability, which is not as common in Clojure-land. But here's one "rough sketch," just as a simple example: I might make personals and aspected vectors of keywords, and I'd end up doing something more like (def find-aspects [astro-data] (reduce #(update-in %1 [%2] (do-aspected-stuff ...)) {} personals)) With do-aspected-stuff being something like: (defn do-aspected-stuff [personal-key astro-data] (reduce #(if (= personal-key %2) %1 (calc-angles astro-data %1 %2)) {} aspected)) and so on and so forth with calc-angles doing its own looping thing with all the calculations you have to do (glossing over the rest as hopefully you get the picture at this point), and everything gets deposited in the hash-map at the very top of the chain at the end. Hope this helps. DD (2014/06/20 22:11), gvim wrote: > On 20/06/2014 13:38, Timothy Baldridge wrote: >> Care to explain? How does it get much simpler than: >> >> (for [x some-collection >> y x >> z y] >> z) >> > > Because it's 3 levels deep and requires substituting the vars back into > maps to then create a returned map. Your for example doesn't emulate > Ruby's each_with_index, as in the example, as far as I'm aware. I'm > fairly new to Clojure so the obvious may not be so obvious to me yet :) > > gvim > -- 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.