LoginSignup
4
0

More than 3 years have passed since last update.

ElixirでArray#productなことをしたい

Last updated at Posted at 2019-09-15

結論

Elixir

sample.exs
iex(2)> for x <- [1,2], y <- [3,4], z <-[5,6], do: [x, y, z]
[
  [1, 3, 5],
  [1, 3, 6],
  [1, 4, 5],
  [1, 4, 6],
  [2, 3, 5],
  [2, 3, 6],
  [2, 4, 5],
  [2, 4, 6]
]

Ruby

sample.rb
[1,2].product([3,4],[5,6]) # => [[1,3,5],[1,3,6],[1,4,5],[1,4,6],
                           #     [2,3,5],[2,3,6],[2,4,5],[2,4,6]]
  • サンプルはこちらを転載させていただきました

記事を書いたきっかけ

sample.exs
iex(8)> f = fn enum1, enum2 ->
...(8)>   enum1
...(8)>   |> Enum.reduce([], fn x, acc ->
...(8)>     acc ++ Enum.map(enum2, fn y -> [x, y] end)
...(8)>   end) 
...(8)> end

iex(9)> f.([1,2], [3,4]) |> f.([5,6]) |> Enum.map(&List.flatten/1)
[
  [1, 3, 5],
  [1, 3, 6],
  [1, 4, 5],
  [1, 4, 6],
  [2, 3, 5],
  [2, 3, 6],
  [2, 4, 5],
  [2, 4, 6]
]
  • 問題集に提示されている回答までの目標時間は大幅に過ぎていますが気にしないことにします
  • 自分との闘い
  • 日本語の記事が見当たらないとおもって書いたのですがすでに先輩がいらっしゃいました!
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0