์ด์ ์ ๋ฆฌ์ ์ฌ์น์ฐ์ฐ์ ๊ตฌํํ ๋,(๋งํฌ) ๊ตฌ์ฒด์ ์ธ ์ ๋ฆฌ์ ๋ฐ์ดํฐ์ ๊ตฌํ๋ฐฉ๋ฒ๊ณผ ์ ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ๊ฒ์ธ์ง ๋ฐ๋ก ๋ผ์ด๋ด์ ์๊ฐํ๊ณ ๊ตฌํํ๋ค. (๋ฐ์ดํฐ์ ์ถ์ํ)
๊ทธ๋ ๊ฒ ํด์ ์ฌ์น์ฐ์ฐ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์์ ๋ ๋ฆฝ์ํฌ ์ ์์๊ณ , ์ ๋ฆฌ์ ๋ฐ์ดํฐ์ ๋ด์ฉ์ ๋ณ๊ฒฝํ ๋๋ ์ฌ์น์ฐ์ฐ ์๊ณ ๋ฆฌ์ฆ์ ๊ณ ๋ ค ์ํ๊ณ ์๋ฌด ๋ฌธ์ ์์ด ๋ณ๊ฒฝ ํ ์ ์์๋ค.ย
์ด๋ ๊ฒ ์ ๋ฆฌ์ ๋ฐ์ดํฐ์ ์ ๋ฆฌ์ ์ฌ์น์ฐ์ฐ์ด ์๋ก ๋ ๋ฆฝ๋์ด์ ๊ตฌํ๋๋๊ฒ์ abstract barrier (์ถ์ํ ๋ฒฝ?) ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฐ์๋ ๊ทธ ์์ธํ ์ค๋ช .ย
๋ฐ์ดํฐ์ ์ถ์ํ๋ฅผ ๋ค๋ฅธ ๊ฐ๋๋ก ๋ค์ ์ค๋ช ํ์๋ฉด,ย
๋ฐ์ดํฐ์ ์ถ์ํ๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋์ด์ง ์ง ๋ชจ๋ ์คํผ๋ ์ด์ ์ ์ ์ํ๊ณ , ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋๋ ๊ทธ ์คํผ๋ ์ด์ ๋ง ์ฌ์ฉํ๋ฉฐ, ๋ฐ์ดํฐ์ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ ๋ฐฉ๋ฒ์ ๊ฐ์ถ๋๊ฒ ์ด๋ผ๊ณ ๋ ๋ณผ์ ์๋ค.ย
๊ฐ์ฒด์งํฅ์ ์๋ฅผ ๋ค์ด ๋งํ์๋ฉด, ๋ฐ์ดํฐ๋ฅผ ์ ์ํ ๋ ๋ฐ์ดํฐ์ ์ด๋ค ๋ถ๋ถ์ public ์ผ๋ก ๊ณต๊ฐ ํ ์ง ๋จผ์ ์ ํ๊ณ , ๋ฐ์ดํฐ์ ๋ด๋ถ๋ ์ฒ ์ ํ ๊ฐ์ถ๋ค๋๊ฒ.ย
๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ (public ์ผ๋ก ์ธ๋ถ ๊ณต๊ฐ๋ ๋ถ๋ถ)๊ณผ ์ค์ ๊ตฌํ์ ๋ฐ๋ก ๋ผ์ด๋ด์ ๊ตฌํํ๋ย ๋ฐ์ดํฐ์ ์ถ์ํ์๋ ์ปค๋ค๋ ์ด์ ์ด ์๋ค.ย
๋ฐ์ดํฐ๋ ์ธ๋ถ์ ๊ณต๊ฐ๋ ์คํผ๋ ์ด์ ๋ง์ผ๋ก ์ฌ์ฉ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ (๋ฐ์ดํฐ๊ฐ ์ถ์ํ๋์ด์๊ธฐ ๋๋ฌธ์) ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ์ ๋ด๋ถ๋ฅผ ์ ๊ฒฝ์ฐ์ง ์๊ณ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.ย
๊ทธ๋ก์ธํด ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ ์๋ก ์์กด์ฑ์ด ๋ฎ์์ง๊ณ , ๋๋ฌธ์ ์ธ๋ถ ๊ณต๊ฐ ์คํผ๋ ์ด์ ๋ง ๊ทธ๋๋ก ์ง์ผ์ค๋ค๋ฉด ๋ฐ์ดํฐ ๋ด๋ถ ๋ณ๊ฒฝ๊ณผ ์ ์ง ๋ณด์๋ฅผ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ ํ ์ ์๊ฒ ๋๋ค๋๊ฒ.ย ย
์ด๋ฐ์์ผ๋ก ํ๋ก๊ทธ๋จ๊ณผ ๊ทธ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ์ถ์์ ๋ฐ์ดํฐ๋ฅผ ์์ ๋ถ๋ฆฌ์ํค๋ ๊ฒ์ abstraction barrier (์ถ์ํ ๋ฒฝ?) ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.ย
์ ๋ฆฌ์์ ์ฌ์น์ฐ์ฐ์ ์ถ์ํ ๋ฒฝ์ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ๋ค.ย
๊ทธ๋ฆผ์์ ๊ฐ๋ก ์ค์ ์ด ์ถ์ํ์ ๋ฒฝ์ ์๋ฏธํ๊ณ , ๊ทธ ์ค์ ์ค๊ฐ์ ์๋ ํ์ ์ฌ๊ฐํ์ด ์ธ๋ถ ๊ณต๊ฐ๋ ์คํผ๋ ์ด์ , ์ฆ ๊ฐ๊ฐ์ ์ถ์ํ ๋ ๋ฒจ์ ์ด์ด์ฃผ๋ ์ ์๊ธฐ ์ธํฐํ์ด์ค์ ์ญํ ์ ํ๋ค.
๊ฐ์ฅ ๋ฐ์์๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํด๋ณด๋ฉด,ย
pair๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋์ด ์ง๋์ง ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ์ ์ถ์ํ์ ๋ฒฝ์ด ์จ๊ธฐ๊ณ ์๊ณ , ๊ทธ pair๋ฅผ ์ฌ์ฉํ๋๊ฒ ํ์ด๋ก ๊ตฌํ๋ ์ ๋ฆฌ์ ๋ฐ์ดํฐ(Rational numbers as pairs)์ด๋ค.ย
๊ทธ๋ฆฌ๊ณ cons car cdr ๊ฐ์ ๊ณต๊ฐ๋ ์คํผ๋ ์ดํฐ๊ฐ ๊ทธ ๋์ ์ฐ๊ฒฐํ๋ย ์ธํฐํ์ด์ค ์ญํ ์ ํด์ ์ ๋ฆฌ์ ๋ฐ์ดํฐ๋ pair๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋๊ฒ.ย
ย
๊ทธ ์์ ๋ถ๋ถ์ ๋ณด๋ฉดย
ํ์ด๋ก ๊ตฌํ๋ ์ ๋ฆฌ์ Rational numbers as pairs ์ด ๋ถ๋ถ์ด ๊ตฌ์ฒด์ ์ธ ๋ฐ์ดํฐ์ ๊ตฌํ ๋ถ๋ถ์ด๊ณ ,ย
์ถ์ํ๋ ์ ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์ด ๋ถ์์ ๋ถ๋ชจ๋ก ๊ตฌ์ฑ๋ ์ ๋ฆฌ์ ๋ฐ์ดํฐ(Rational numbers as numerators and denominators)์ด๋ค.ย
๊ทธ๋ฆฌ๊ณ ๊ทธ ๋์ ์ด์ด์ฃผ๋ ์ธํฐํ์ด์ค๊ฐ make-rat numer denom ๊ฐ์ ํ์ ์ฌ๊ฐํ์ ๋ค์ด์๋ ๊ณต๊ฐ๋ ์คํผ๋ ์ด์ ๋ค์ด๋ค.ย
๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ฒ ๋ง๋ค์ด์ง ์ ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ๋ก ๊ณต๊ฐํ๋ ์ธํฐํ์ด์ค๊ฐ add-rat sub-rat ๊ฐ์ ์ฌ์น์ฐ์ฐ ์คํผ๋ ์ด์ ๋ค์ด๊ณ ย
๊ทธ ์ฌ์น์ฐ์ฐ ์คํผ๋ ์ด์ ์ ์ด์ฉํด์ ์ค์ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๋ค๋๊ฒ.ย
์ด๋ฐ์์ผ๋ก ์ถ์ํ์ ๋ฒฝ์ ์ธ์ฐ๋๊ฒ์ผ๋ก ์ค์ ๋ก ๊ฐ ๋ ๋ฒจ๋ณ๋ก ์ถ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํด๋ ๋ค๋ฅธ ๋ ๋ฒจ์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํ ํ๋ฉด ๋ณ๊ฒฝ๋ฑ์ด ๋งค์ฐ ํธํ๊ฒ ๋๋ค.ย
์๋ฅผ ๋ค์ด ์๋๋ฅผ ๋ณด์.ย
์ ๋ฆฌ์๋ฅผ ํํํ ๋ ํญ์ ๊ธฐ์ฝ๋ถ์๋ก ํ์ํ๊ณ ์ถ๋ค๊ณ ํ์.ย
๊ทธ ๊ตฌํ ๋ฐฉ๋ฒ์ ๋๊ฐ์ง๋ก ์๊ฐํ ์ ์๋๋ฐ, ํ๋๋ ์ ๋ฆฌ์๊ฐ ๋ง๋ค์ด์ง ๋, ๋๋ ์ ๋ฆฌ์์ ๋ถ๋ชจ๋ ๋ถ์๋ฅผ ์ถ์ถํ ๋ ๊ธฐ์ฝ๋ถ์๋ก ๋ณ๊ฒฝํ๋ ๋ฒ์ด๋ค.ย
์ด ๋๊ฐ์ง๋ฅผ ์ถ์ํ์ ๋ฒฝ์ด ์์ผ๋ฏ๋ก ์๋ฌด ์ ํ์์ด ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.ย
์ ๋ฆฌ์๊ฐ ๋ง๋ค์ด์ง ๋ ๊ธฐ์ฝ๋ถ์๋ก ํ๋ ค๋ฉด ์๋์ ์ฝ๋๋ก ๋ณ๊ฒฝํ๋ฉด ๋๊ณ ย
๋ถ๋ชจ ๋ถ์๋ฅผ ์ถ์ถ ํ ๋ ๊ธฐ์ฝ๋ถ์๋ก ํ๋ ค๋ฉด ์๋์ ์ฝ๋๋ก ๋ณ๊ฒฝํ๋ฉด ๋๋ค.ย
์ด๋ ๊ฒ ์ถ์ํ์ ๋ฒฝ์ ์ธ์ฐ๋๊ฒ์ผ๋ก ๋ค๋ฅธ ๋ถ๋ถ์ ์ ๊ฒฝ์ธ ๊ฒ ์์ด ๋ด๋ถ๋ฅผ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋ค๋๊ฑฐย
๋๊ธ 0