[Clojure] ๋ฒกํ„ฐ

[์›๋ณธ ๋งํฌ]

๋ฒกํ„ฐ๋Š” ํด๋กœ์ €์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‚ด์žฅ ๋ฐฐ์—ด ํƒ€์ž…์ด๋‹ค.
๋Œ€๊ด„ํ˜ธ๋กœ ๊ฐ์‹ผ ์‹œํ€€์Šค๋กœ ํ‘œํ˜„๋œ๋‹ค.


image

image

๊ทผ๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ํ•จ์ˆ˜ํ˜• ์–ธ์–ด๋“ค์ด ๊ทธ๋ ‡๋“ฏ์ด, ํด๋กœ์ €๋„ ํƒ€์ž…๊ฒ€์‚ฌ๊ฐ™์€๊ฑธ ์ œ๋Œ€๋กœ ์•ˆํ•œ๋‹ค.
๊ทธ๋ž˜์„œ ์ •์ˆ˜ ๋ฒกํ„ฐ์— ๋ฌธ์ž์—ด๊ฐ™์€๊ฑธ ๋ผ์›Œ๋†”๋„ ์ž˜ ๋ˆ๋‹ค. image

image ์ด๋Ÿฐ๊ฒŒ ๊ผด๋ณด๊ธฐ ์‹ซ๋‹ค๋ฉด ์ƒ์„ฑ์šฉ ํ•จ์ˆ˜๋ฅผ ์“ฐ๋ฉด ๋œ๋‹ค.


vector-of
๋ฒกํ„ฐ ์ƒ์„ฑ์šฉ ํ•จ์ˆ˜๋‹ค. ์ฒซ๋ฒˆ์งธ ์ธ์ž๋กœ ํƒ€์ž…๊ฐ’์„ ๋ฐ›๊ณ , ํƒ€์ž…๊ฒ€์‚ฌ๋ฅผ ํ•ด์ค€๋‹ค๋Š” ๊ฒŒ ํŠน์ด์‚ฌํ•ญ์ด๋‹ค.
(vector-of ํƒ€์ž… ์ธ์ž1 ์ธ์ž2...)


image

image


nthํ•จ์ˆ˜
์ธ๋ฑ์Šค๋ฅผ ๋ฐ›๊ณ  ํ•ด๋‹น ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
(nth ๋ฒกํ„ฐ ์ธ๋ฑ์Šค) image

image

๊ทผ๋ฐ ์ ‘๊ทผ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง„๋‹ค. image

image

์ด๋Ÿฐ ์˜ˆ์™ธ์ƒํ™ฉ์„ ๋ง‰์œผ๋ ค๋ฉด, ์ธ์ž๋ฅผ ํ•˜๋‚˜ ๋” ์ค˜์„œ ์˜ˆ์™ธ๋ฐœ์ƒ์‹œ ๋ฐ˜ํ™˜ ํ‘œํ˜„์‹์„ ์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.
(nth ๋ฒกํ„ฐ ์ธ๋ฑ์Šค ์˜ˆ์™ธํ‘œํ˜„์‹) image

image


getํ•จ์ˆ˜
์ด๊ฒƒ๋„ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ›๊ณ  ํ•ด๋‹น ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
nth์™€ ๋ญ” ์ฐจ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.
(get ๋ฒกํ„ฐ ์ธ๋ฑ์Šค)
(get ๋ฒกํ„ฐ ์ธ๋ฑ์Šค ์˜ˆ์™ธํ‘œํ˜„์‹)


image

image

image


conj ํ•จ์ˆ˜
๋ฒกํ„ฐ ๋’ค์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
๋ฆฌ์ŠคํŠธ์™€ ๋‹ค๋ฅด๊ฒŒ ๋ฒกํ„ฐ๋Š” ๋’ค์—์„œ ์‚ฝ์ž…์ด๋‚˜ ์‚ญ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
(conj ๋ฒกํ„ฐ ๊ฐ’1 ๊ฐ’2...)


image

image

image


popํ•จ์ˆ˜
๋ฒกํ„ฐ ๋’ค์˜ ์ธ์ž๋ฅผ ํ•˜๋‚˜ ์ œ๊ฑฐํ•œ๋‹ค.
(pop ๋ฒกํ„ฐ)


image

image


์ฐธ์กฐ
https://www.tutorialspoint.com/clojure/clojure_vectors.htm
https://clojuredocs.org/clojure.core/get