[Scheme] ๋ฒกํ„ฐ

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

๋ฒกํ„ฐ๋Š” ์Šคํ‚ด์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐฐ์—ด ํƒ€์ž…์ด๋‹ค.
๋‹ค๋ฅธ ์–ธ์–ด๋“ค์—์„œ ๋ฒกํ„ฐ๊ฐ€ ๊ธธ์ด๊ฐ€ ๊ฐ€๋ณ€์ ์ธ ๋™์ ๋ฐฐ์—ด์ž„์— ๋ฐ˜ํ•ด, ์Šคํ‚ด์˜ ๋ฒกํ„ฐ๋Š” ๊ณ ์ •๊ธธ์ด ๋ฐฐ์—ด์ด๋‹ค.


์ƒ์„ฑ
๋ฒกํ„ฐ๋Š” vector ํ•จ์ˆ˜๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
์ธ์ž๋„ ๋ณด๋‚ด๋ฉด์„œ image

image

๊ทผ๋ฐ ์ € ๋ฐฉ๋ฒ•์€ ํ•œ๊ณ„๊ฐ€ ์ข€ ์žˆ๋‹ค. ์ธ์ž๋ฅผ ์ „๋ถ€ ์ •ํ•ด์„œ ๋ณด๋‚ด์ค˜์•ผ ํ•˜๋ฏ€๋กœ...
make-vector ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธธ์ด๋งŒ ์ง€์ •ํ•ด์„œ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. image

image ๋Œ€์‹  ๋”ฐ๋กœ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์œผ๋ฉด ์ €๋Ÿฐ ์ด์ƒํ•œ ๊ฐ’๋งŒ ๋“ค์–ด์ฐฌ๋‹ค.

vector-fill!์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹จ์ผ ์ดˆ๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. image

image


์ ‘๊ทผ
๋ฒกํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ์€ vector-ref๋ผ๋Š” ํ•จ์ˆ˜๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฒซ๋ฒˆ์งธ ์ธ์ž๊ฐ€ ๋ฒกํ„ฐ, ๋‘๋ฒˆ์งธ ์ธ์ž๊ฐ€ ์ธ๋ฑ์Šค๋‹ค... image

image

๊ธธ์ด๋Š” vector-length ํ•จ์ˆ˜ image

image

์ด์™ธ์— vector? ํ•จ์ˆ˜๋Š” ํ•ด๋‹น ๊ฐ’์ด ๋ฒกํ„ฐ์ธ์ง€ ํ™•์ธํ•ด์ค€๋‹ค. image

image


์ˆ˜์ •
๋ฒกํ„ฐ๋Š” ๊ธธ์ด๋ฅผ ๋ฐ”๊ฟ€ ์ˆœ ์—†์ง€๋งŒ, ๊ฐœ๋ณ„ ์š”์†Œ๊ฐ’์€ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
vector-set! ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
์ฒซ๋ฒˆ์งธ ์ธ์ž๋ก  ๋ฒกํ„ฐ, ๋‘๋ฒˆ์งธ๋Š” ์ธ๋ฑ์Šค, ์„ธ๋ฒˆ์งธ๋Š” ์ˆ˜์ •๊ฐ’์ด๋‹ค. image

image


์ด์™ธ์—๋„ ์ด๋Ÿฐ์ €๋Ÿฐ ํ•จ์ˆ˜๊ฐ€ ๋งŽ์œผ๋‹ˆ, ์•„๋ž˜ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.
https://docs.racket-lang.org/reference/vectors.html


์ฐธ์กฐ
https://en.m.wikibooks.org/wiki/Scheme_Programming/Vector_Operations
https://docs.racket-lang.org/reference/vectors.html