[Elixir] Enum ๋ชจ๋
Enum ๋ชจ๋์ ๋ง ๊ทธ๋๋ก Enumeration์ ๋ํ ํจ์๋ค์ ์ ๊ณตํ๋ ํ์ ๋ชจ๋์ด๋ค.
๊ทธ์ค ์์ฃผ ์ฌ์ฉํ ๋งํ ๊ฒ์ ์์ฃผ๋ก ๋๊ฐ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค.
Enum.join
์ด๊ฑด ๋ฆฌ์คํธ ๊ฐ ํญ๋ชฉ์ ์ฐ๊ฒฐํด์ค๋ค. ์ฒซ๋ฒ์งธ ์ธ์๋ ๋ฆฌ์คํธ, ๋๋ฒ์งธ ์ธ์๋ ์ฐ๊ฒฐํ ๋ ์ฌ์ด์ ๋ผ์๋ฃ์ ๊ตฌ๋ถ์๋ค.



Enum.each
์ด๊ฑด ๋ค๋ฅธ ์ธ์ด๋ค์ forEach ๋ฑ๊ณผ ๋๋ฑํ ํจ์๋ค.
์์๋ฅผ ์์๋๋ก ๋๋ฉด์ ์ฝ๋ฐฑํจ์๋ฅผ ํธ์ถํ๋ค.
์ฒซ๋ฒ์งธ ์ธ์๋ ๋ฐ๋ณตํ ๋ฆฌ์คํธ, ๋๋ฒ์งธ ์ธ์๋ ์์๋ฅผ ์์๋๋ก ๋ณด๋ด์ ํธ์ถํ ์ฝ๋ฐฑํจ์๋ค.



Enum.map
๋ค๋ฅธ ์ธ์ด๋ค์ map๊ณผ ๋์ผํ๋ค. ์์๋ฅผ ์์๋๋ก ๋๋ฉด์, map ํธ์ถํ๊ณ ๋ฐํ๋ ๊ฐ์ ๋ฐ์ ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค.
์๋ ์ฝ๋๋ ๊ฐ ๊ฐ์ 2๋ฅผ ๊ณฑํ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค.



Enum.filter
์ด๊ฑด ์ด๋ฆ ๊ทธ๋๋ก ํํฐ, ๊ฑธ๋ฌ๋ด๋ ์ญํ ์ ํ๋ ํจ์๋ค.
์ฝ๋ฐฑํจ์๊ฐ true๋ฅผ ๋ฐํํ๋ ๊ฒ๋ง ๋จ๊ฒจ๋๊ณ ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ค๋ค.



Enum.reduce
reduce ๊ฐ์ถํ๋ค๋ ๋ป์ธ๋ฐ, ์ด๋ฆ๋ง ๋ด์๋ ์๋ฟ์ง ์์ ์ ์๋ค.
๊ทธ๋ฅ ์์๋ฅผ ํ๋์ฉ ๋๋ฉด์ ๊ฐ์ ์์๋๊ฐ๋ ํจ์๋ค. ํฉ๊ณ๊ฐ์๊ฑธ ๊ตฌํ๊ธฐ ์ข๋ค.
์ฒซ๋ฒ์งธ ์ธ์๋ ๋ฆฌ์คํธ, ๋๋ฒ์งธ ์ธ์๋ ์ด๊ธฐ๊ฐ, ์ธ๋ฒ์งธ๊ฐ ์ฝ๋ฐฑํจ์๋ค.
์ฝ๋ฐฑ์ ์์๋๋ก ๊ฐ (์์๊ฐ, ๋๊ณ)๋ฅผ ๋ฐ๊ณ , ์ฝ๋ฐฑ์ด ๋ฐํํ๋ ๊ฐ์ด ๋ค์์ ์ ๋ฌ๋ ๋๊ณ๊ฐ ๋๋ค.



Enum.sort
์ ๋ ฌํจ์๋ค. ์ฝ๋ฐฑ์ ์ฃผ์ง ์์ผ๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.



์ด์ธ์๋ any?, all?, empty?, concat, count, split, slice, uniq... ๋ฑ๋ฑ ๋ค์ํ๊ณ ์ ์ฉํ ํจ์๋ค์ด ์์ผ๋
https://hexdocs.pm/elixir/Enum.html
๋ฌธ์๋ฅผ ์ฐธ์กฐํ๊ธธ ๋ฐ๋๋ค.
์ฐธ์กฐ
https://www.tutorialspoint.com/elixir/elixir_enumerables.htm
https://hexdocs.pm/elixir/Enum.html