์ด์ „ ์œ ๋ฆฌ์ˆ˜ ์‚ฌ์น™์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•  ๋•Œ,(๋งํฌ) ๊ตฌ์ฒด์ ์ธ ์œ ๋ฆฌ์ˆ˜ ๋ฐ์ดํ„ฐ์˜ ๊ตฌํ˜„๋ฐฉ๋ฒ•๊ณผ ์œ ๋ฆฌ์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ๋”ฐ๋กœ ๋–ผ์–ด๋‚ด์„œ ์ƒ๊ฐํ•˜๊ณ  ๊ตฌํ˜„ํ–ˆ๋‹ค. (๋ฐ์ดํ„ฐ์˜ ์ถ”์ƒํ™”)

๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ์‚ฌ์น™์—ฐ์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์œ ๋ฆฌ์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์™„์ „ ๋…๋ฆฝ์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ๊ณ , ์œ ๋ฆฌ์ˆ˜ ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋„ ์‚ฌ์น™์—ฐ์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณ ๋ ค ์•ˆํ•˜๊ณ  ์•„๋ฌด ๋ฌธ์ œ์—†์ด ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.ย 

์ด๋ ‡๊ฒŒ ์œ ๋ฆฌ์ˆ˜ ๋ฐ์ดํ„ฐ์™€ ์œ ๋ฆฌ์ˆ˜ ์‚ฌ์น™์—ฐ์‚ฐ์ด ์„œ๋กœ ๋…๋ฆฝ๋˜์–ด์„œ ๊ตฌํ˜„๋˜๋Š”๊ฒƒ์„ abstract barrier (์ถ”์ƒํ™” ๋ฒฝ?) ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋ฐ‘์—๋Š” ๊ทธ ์ž์„ธํ•œ ์„ค๋ช….ย 


๋ฐ์ดํ„ฐ์˜ ์ถ”์ƒํ™”๋ฅผ ๋‹ค๋ฅธ ๊ฐ๋„๋กœ ๋‹ค์‹œ ์„ค๋ช…ํ•˜์ž๋ฉด,ย 

๋ฐ์ดํ„ฐ์˜ ์ถ”์ƒํ™”๋ž€ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜์–ด์งˆ ์ง€ ๋ชจ๋“  ์˜คํผ๋ ˆ์ด์…˜์„ ์ •์˜ํ•˜๊ณ , ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๊ทธ ์˜คํผ๋ ˆ์ด์…˜๋งŒ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์€ ๊ฐ์ถ”๋Š”๊ฒƒ ์ด๋ผ๊ณ ๋„ ๋ณผ์ˆ˜ ์žˆ๋‹ค.ย 

๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜ˆ๋ฅผ ๋“ค์–ด ๋งํ•˜์ž๋ฉด, ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•  ๋•Œ ๋ฐ์ดํ„ฐ์˜ ์–ด๋–ค ๋ถ€๋ถ„์„ public ์œผ๋กœ ๊ณต๊ฐœ ํ•  ์ง€ ๋จผ์ € ์ •ํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ๋‚ด๋ถ€๋Š” ์ฒ ์ €ํžˆ ๊ฐ์ถ˜๋‹ค๋Š”๊ฒƒ.ย 

๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• (public ์œผ๋กœ ์™ธ๋ถ€ ๊ณต๊ฐœ๋œ ๋ถ€๋ถ„)๊ณผ ์‹ค์ œ ๊ตฌํ˜„์„ ๋”ฐ๋กœ ๋–ผ์–ด๋‚ด์„œ ๊ตฌํ˜„ํ•˜๋Š”ย ๋ฐ์ดํ„ฐ์˜ ์ถ”์ƒํ™”์—๋Š” ์ปค๋‹ค๋ž€ ์ด์ ์ด ์žˆ๋‹ค.ย 

๋ฐ์ดํ„ฐ๋Š” ์™ธ๋ถ€์— ๊ณต๊ฐœ๋œ ์˜คํผ๋ ˆ์ด์…˜๋งŒ์œผ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— (๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”์ƒํ™”๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์—) ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐ์ดํ„ฐ์˜ ๋‚ด๋ถ€๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.ย 

๊ทธ๋กœ์ธํ•ด ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋Š” ์„œ๋กœ ์˜์กด์„ฑ์ด ๋‚ฎ์•„์ง€๊ณ , ๋•Œ๋ฌธ์— ์™ธ๋ถ€ ๊ณต๊ฐœ ์˜คํผ๋ ˆ์ด์…˜๋งŒ ๊ทธ๋Œ€๋กœ ์ง€์ผœ์ค€๋‹ค๋ฉด ๋ฐ์ดํ„ฐ ๋‚ด๋ถ€ ๋ณ€๊ฒฝ๊ณผ ์œ ์ง€ ๋ณด์ˆ˜๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค๋Š”๊ฒƒ.ย ย 


์ด๋Ÿฐ์‹์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ทธ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ์ถ”์ƒ์  ๋ฐ์ดํ„ฐ๋ฅผ ์™„์ „ ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ๊ฒƒ์„ abstraction barrier (์ถ”์ƒํ™” ๋ฒฝ?) ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.ย 

์œ ๋ฆฌ์ˆ˜์˜ ์‚ฌ์น™์—ฐ์‚ฐ์˜ ์ถ”์ƒํ™” ๋ฒฝ์„ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.ย 

๊ทธ๋ฆผ์—์„œ ๊ฐ€๋กœ ์‹ค์„ ์ด ์ถ”์ƒํ™”์˜ ๋ฒฝ์„ ์˜๋ฏธํ•˜๊ณ , ๊ทธ ์‹ค์„  ์ค‘๊ฐ„์— ์žˆ๋Š” ํšŒ์ƒ‰ ์‚ฌ๊ฐํ˜•์ด ์™ธ๋ถ€ ๊ณต๊ฐœ๋œ ์˜คํผ๋ ˆ์ด์…˜, ์ฆ‰ ๊ฐ๊ฐ์˜ ์ถ”์ƒํ™” ๋ ˆ๋ฒจ์„ ์ด์–ด์ฃผ๋Š” ์ ‘์†๊ธฐ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์—ญํ• ์„ ํ•œ๋‹ค.


2cf3c028e2f206a26d81f6e747887d6b


๊ฐ€์žฅ ๋ฐ‘์—์„œ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์‚ดํŽด๋ณด๋ฉด,ย 


2cf3c028e2f206a26d81f6e2418473


pair๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜์–ด ์ง€๋Š”์ง€ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ•์„ ์ถ”์ƒํ™”์˜ ๋ฒฝ์ด ์ˆจ๊ธฐ๊ณ  ์žˆ๊ณ , ๊ทธ pair๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ํŽ˜์–ด๋กœ ๊ตฌํ˜„๋œ ์œ ๋ฆฌ์ˆ˜ ๋ฐ์ดํ„ฐ(Rational numbers as pairs)์ด๋‹ค.ย 

๊ทธ๋ฆฌ๊ณ  cons car cdr ๊ฐ™์€ ๊ณต๊ฐœ๋œ ์˜คํผ๋ ˆ์ดํ„ฐ๊ฐ€ ๊ทธ ๋‘˜์„ ์—ฐ๊ฒฐํ•˜๋Š”ย ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•ด์„œ ์œ ๋ฆฌ์ˆ˜ ๋ฐ์ดํ„ฐ๋Š” pair๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š”๊ฒƒ.ย 

ย 

๊ทธ ์œ„์˜ ๋ถ€๋ถ„์„ ๋ณด๋ฉดย 


2cf3c028e2f206a26d81f6ed458272

ํŽ˜์–ด๋กœ ๊ตฌํ˜„๋œ ์œ ๋ฆฌ์ˆ˜ Rational numbers as pairs ์ด ๋ถ€๋ถ„์ด ๊ตฌ์ฒด์ ์ธ ๋ฐ์ดํ„ฐ์˜ ๊ตฌํ˜„ ๋ถ€๋ถ„์ด๊ณ ,ย 

์ถ”์ƒํ™”๋œ ์œ ๋ฆฌ์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋ถ„์ˆ˜์™€ ๋ถ„๋ชจ๋กœ ๊ตฌ์„ฑ๋œ ์œ ๋ฆฌ์ˆ˜ ๋ฐ์ดํ„ฐ(Rational numbers as numerators and denominators)์ด๋‹ค.ย 

๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋‘˜์„ ์ด์–ด์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ make-rat numer denom ๊ฐ™์€ ํšŒ์ƒ‰ ์‚ฌ๊ฐํ˜•์— ๋“ค์–ด์žˆ๋Š” ๊ณต๊ฐœ๋œ ์˜คํผ๋ ˆ์ด์…˜ ๋“ค์ด๋‹ค.ย 


2cf3c028e2f206a26d81f6ed428576


๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์œ ๋ฆฌ์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€๋กœ ๊ณต๊ฐœํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ add-rat sub-rat ๊ฐ™์€ ์‚ฌ์น™์—ฐ์‚ฐ ์˜คํผ๋ ˆ์ด์…˜ ๋“ค์ด๊ณ ย 

๊ทธ ์‚ฌ์น™์—ฐ์‚ฐ ์˜คํผ๋ ˆ์ด์…˜์„ ์ด์šฉํ•ด์„œ ์‹ค์ œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค๋Š”๊ฒƒ.ย 



์ด๋Ÿฐ์‹์œผ๋กœ ์ถ”์ƒํ™”์˜ ๋ฒฝ์„ ์„ธ์šฐ๋Š”๊ฒƒ์œผ๋กœ ์‹ค์ œ๋กœ ๊ฐ ๋ ˆ๋ฒจ๋ณ„๋กœ ์ถ”์ƒํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•ด๋„ ๋‹ค๋ฅธ ๋ ˆ๋ฒจ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™” ํ•˜๋ฉด ๋ณ€๊ฒฝ๋“ฑ์ด ๋งค์šฐ ํŽธํ•˜๊ฒŒ ๋œ๋‹ค.ย 

์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜๋ฅผ ๋ณด์ž.ย 


์œ ๋ฆฌ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ํ•ญ์ƒ ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ํ‘œ์‹œํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜์ž.ย 

๊ทธ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๋‘๊ฐ€์ง€๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” ์œ ๋ฆฌ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ๋•Œ, ๋˜๋Š” ์œ ๋ฆฌ์ˆ˜์˜ ๋ถ„๋ชจ๋‚˜ ๋ถ„์ž๋ฅผ ์ถ”์ถœํ•  ๋•Œ ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฒ•์ด๋‹ค.ย 

์ด ๋‘๊ฐ€์ง€๋ฅผ ์ถ”์ƒํ™”์˜ ๋ฒฝ์ด ์žˆ์œผ๋ฏ€๋กœ ์•„๋ฌด ์ œํ•œ์—†์ด ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.ย 

์œ ๋ฆฌ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ๋•Œ ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ํ•˜๋ ค๋ฉด ์•„๋ž˜์˜ ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๊ณ ย 


2cf3c028e2f206a26d81f6e0418377

๋ถ„๋ชจ ๋ถ„์ž๋ฅผ ์ถ”์ถœ ํ•  ๋•Œ ๊ธฐ์•ฝ๋ถ„์ˆ˜๋กœ ํ•˜๋ ค๋ฉด ์•„๋ž˜์˜ ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋œ๋‹ค.ย 


2cf3c028e2f206a26d81f6e447887168


์ด๋ ‡๊ฒŒ ์ถ”์ƒํ™”์˜ ๋ฒฝ์„ ์„ธ์šฐ๋Š”๊ฒƒ์œผ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์‹ ๊ฒฝ์“ธ ๊ฒƒ ์—†์ด ๋‚ด๋ถ€๋ฅผ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š”๊ฑฐย