Try http://clojuredocs.org/clojure_core/clojure.core/for
On Wed, Jun 18, 2014 at 11:56 AM, gvim <gvi...@gmail.com> wrote: > I have a method in Ruby that involves 3-level enumeration and would like > to rewrite it in Clojure. Without asking anyone to do the job :), what is > the best equivalent to this kind of Ruby iteration in Clojure? I looked at > prewalk and postwalk but wasn't convinced that was what's required. Map > could also get a bit messy here. > > gvim > > > **************************************************************** > SIGNS = { ar:'Aries', ta:'Taurus', ge:'Gemini', cn:'Cancer', le:'Leo', > vi:'Virgo', > li:'Libra', sc:'Scorpio', sa:'Sagittarius', cp:'Capricorn', > aq:'Aquarius', pi:'Pisces' } > RULERS = {Aries:[:Mars], Taurus:[:Venus], Gemini:[:Mercury], > Cancer:[:Moon], Leo:[:Sun], Virgo:[:Mercury], Libra:[:Venus], > Scorpio:[:Mars, :Pluto], Sagittarius:[:Jupiter], > Capricorn:[:Saturn], Aquarius:[:Saturn, :Uranus], Pisces:[:Jupiter, > :Neptune]} > ANGLES = {cnj:{orb:7.5, deg:[0], type:'g'}, squ:{orb:6, deg:[90,270], > type:'r'}, > tri:{orb:6, deg:[120,240], type:'g'}, opp:{orb:7.5, deg:[180], > type:'r'}} > PERSONALS = %i(Sun Moon Mercury Venus Mars) > ASPECTED = %i(Sun Moon Mercury Venus Mars Jupiter Saturn Uranus Neptune > Pluto) > > > def find_aspects(astro_data) > results = {} > PERSONALS.each_with_index do |p,i| > results[p] = {} > ASPECTED[i+1..9].each do |a| > next if p == a > ANGLES.each do |asp, data| > data[:deg].each do |d| > exact = astro_data[p][:long] + d > exact -= 360 if exact >= 360 > range_start = exact - data[:orb] > range_end = (exact + data[:orb] >= 360) ? (exact + data[:orb] - > 360) : (exact + data[:orb]) > target_long = astro_data[a][:long] > if target_long >= range_start && target_long <= range_end > width = target_long <= exact ? (exact - target_long) : > (target_long - exact) > results[p][a] = [asp,width] > end > end > end > end > end > return results > end > > -- > 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. > -- 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.