[Clojure] ๋ฆฌ์คํธ
๋ฆฌ์คํธ๋ ํด๋ก์ ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์๋ฃ๊ตฌ์กฐ ํ์ ์ค ํ๋๋ค.
๋ฆฌ์คํธ ๊ฐ์ฒด๋ list ํจ์๋ก ์์ฑํ ์ ์๋ค.


์ฃผ์ ํจ์๋ค๋ก ์ด๋ฐ๊ฒ ์๋ค.
first ํจ์
์ด๊ฑด ๋ฆฌ์คํธ์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ๋ฐํํ๋ค.
(first ๋ฆฌ์คํธ)
ํด๋ก์ ์ ๋ฆฌ์คํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์์๋ง ์์ ์ด ์ด๋ฃจ์ด์ง๋ค...


rest ํจ์
์ด๊ฑด ๋ฆฌ์คํธ์์ ์ฒซ๋ฒ์งธ๋ฅผ ์ ๊ฑฐํ ๋ฆฌ์คํธ๋ฅผ ๋ฐํํ๋ค.
(rest ๋ฆฌ์คํธ)


first์ ์ด์ธ๋ ค์ ๋ฆฌ์คํธ๋ฅผ ์ฌ๊ท์ ์ผ๋ก ์ ๊ทผํ ๋ ์ฌ์ฉํ๊ธฐ ์ข๋ค.
first๋ก ์ฝ๊ณ , rest๋ก ๋ฒ๋ฆฌ๊ณ , ...


nth ํจ์
์ธ๋ฑ์ค๊ฐ์ ๋ฐ์์ ํด๋น ์์น์ ์์๋ฅผ ๋ฐํํ๋ค.
(nth ๋ฆฌ์คํธ ์ธ๋ฑ์ค)
์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๋ค.


cons ํจ์
construct์ ์ถ์ฝ์ด๋ค.
์ด๊ฑด ๋ฆฌ์คํธ์ ์๋ก์ด ์์ ํ๋๋ฅผ ์์ ์ด์ด๋ถ์ด๊ณ , ๊ทธ ๋ฆฌ์คํธ๋ฅผ ๋ฐํํ๋ค.
(cons ์์ ๋ฆฌ์คํธ)
์ด๋ ๊ฒ


conj ํจ์
๊ฒฐํฉํ๋ค๋ ๋ป์ conjoin ์ถ์ฝ์ด๋ค.
์ด๊ฑด cons์ ๋น์ทํ์ง๋ง, ์์๋ฅผ ์ฌ๋ฌ๊ฐ ๋ฐ์์ ์ด์ด๋ถ์ธ๋ค๋ ๊ฒ ๋ค๋ฅด๋ค.
(conj ๋ฆฌ์คํธ ์์1 ์์2...)
์์๋๋ก ๋ฆฌ์คํธ์ ์์ ์๋๋ค.


์ฐธ์กฐ
https://www.tutorialspoint.com/clojure/clojure_lists.htm