Skip to content

Instantly share code, notes, and snippets.

@Atalanta
Created January 27, 2013 04:56
Show Gist options
  • Save Atalanta/4646437 to your computer and use it in GitHub Desktop.
Save Atalanta/4646437 to your computer and use it in GitHub Desktop.
irb(main):001:0> a = ["q", "u"]
=> ["q", "u"]
irb(main):002:0> b = ["x", "y"]
=> ["x", "y"]
irb(main):009:0> first_pass = a.map do |i|
irb(main):010:1* b.map do |j|
irb(main):011:2* i+j
irb(main):012:2> end
irb(main):013:1> end
=> [["qx", "qy"], ["ux", "uy"]]
irb(main):014:0>
irb(main):015:0* second_pass = a.map do |i|
irb(main):016:1* b.map do |j|
irb(main):017:2* j+i
irb(main):018:2> end
irb(main):019:1> end
=> [["xq", "yq"], ["xu", "yu"]]
irb(main):020:0>
irb(main):021:0* result = first_pass + second_pass
=> [["qx", "qy"], ["ux", "uy"], ["xq", "yq"], ["xu", "yu"]]
irb(main):023:0> result.flatten
=> ["qx", "qy", "ux", "uy", "xq", "yq", "xu", "yu"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment