์ ๋ฒ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๊ฐ๋ ์ ๊ณต๋ถํ๋ค.ย
1. ํ๋ฆฌ๋ฏธํฐ๋ธ ๋ฐ์ดํฐ (์ซ์) ํ๋ฆฌ๋ฏธํฐ๋ธ ํ๋ก์์ (์ฌ์น์ฐ์ฐ)
2. ๋ค์คํ ์ฝค๋น๋ค์ด์
3. ๋ค์ด๋ฐ์ผ๋ก ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ถ์ํ
์ด๋ฒํ์์๋ ๋ ๊ฐ๋ ฅํ ์ถ์ํ์ ๊ฐ๋ ์ธ procedure definition ์ ๋ฐฐ์ด๋ค.ย
ํ์ด์ฌ์ ๋น๋์ด ์ค๋ช ํ๋ฉด ํจ์๋ฅผ ์ด๋ป๊ฒ ์ ์ํ๋๊ฐ์ด๋ค.ย
์๋ฅผ ๋ค์ด์ ์ ๊ณฑ์ ์๊ฐํด๋ณด์.ย
Lisp ์์๋ ์ด๋ ๊ฒ ํํ๋๋ค.ย
(define (square x) (* x x))
ํ์ด์ฌ์์๋ ์๋์ ๊ฐ๋ค.ย
def square(x):
ย ย x * xย
์์ ํ ๊ฐ์ง๋ ์์๊ฒ์ด, ํ์ด์ฌ์์๋ ์์ square(x) ๋ฅผ ์คํํ๋ฉด ์๋ฌด๊ฒ๋ ํ์๋์ง ์๋๋ค.ย
ํ์ด์ฌ์ ํจ์์ ๊ฒฝ์ฐ ๊ฐ์ ๋ช ์์ ์ผ๋ก return ํ์ง ์์ผ๋ฉด None์ return ํ๊ธฐ๋๋ฌธ.ย
๊ทผ๋ฐ SCIP์์๋ Lisp์ ์ด์ฉํ๋๊น ๊ฑ ๋์ด๊ฐ์.ย
Lisp์์ procedure definition์ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ๋ค.ย
์ฌ๊ธฐ์ ์ค์ํ ํฌ์ธํธ๋ procedure definition ์๋ ๋๊ฐ์ง ์ฒ๋ฆฌ๊ฐ ์กด์ฌํ๋ค๋๊ฒ์ด๋ค.ย
ํ๋๋ name (์ด๋ฆ)์ ์ ์ธํ ์ฒ๋ฆฌ ๋ถ๋ถ์ ์์ฑ. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ฒ ์์ฑ๋ ์ฒ๋ฆฌ๋ถ๋ถ์ ์ด๋ฆ์ง๋๊ฒ.ย
์ด๋ ๊ฒ ๋๊ฐ์ง ์ฒ๋ฆฌ๋ก ๋๋์ด์ ธ ์๋ฐ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํ๋ค.ย
์์ ๊ทธ๋ฆผ์ผ๋ก ๋งํ์๋ฉด,ย
1. name ์ ์ ์ธํ formal parameters ์ body๋ฅผ ์์ฑํ๊ณ ,ย
2. ๊ทธ๊ฒ์ name์ ์ฐ๊ฒฐํ๋ค๋๊ฑฐ
์ด๋ ๊ฒ procedure definition์ ํด์ compound procedure ๋ฅผ ์ ์๋ฅผ ํ๋ฉด,ย
๊ทธ ์ ์ํ ์ด๋ฆ์ ๋ ํ๋์ ์ ๋์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.ย
์๋ฅผ ๋ค์ด์ ์๋์ ๊ฐ์ด ์ฌ์ฉ๊ฐ๋ฅย
์ฌ๊ธฐ์๋ถํฐ๋ ๋ด ์๊ฐ.
๊ทธ๋ฌ๋ฉด ๊ฒฐ๊ตญ, ํ๋ฆฌ๋ฏธํฐ๋ธ ๋ฐ์ดํฐ์ ์ด๋ฆ์ ๋ถ์ด๋๊ฒ๊ณผ, ํจ์๋ฅผ ์ ์ํ๋๊ฒ์ ๊ฐ๋ ์ ์ผ๋ก ๊ฐ์ ์ฒ๋ฆฌ๋ผ๋๊ฒ.ย
a = 1ย ย
์ด๊ฑด 1 ์ด๋ผ๋ expression ์ a ๋ผ๊ณ ์ด๋ฆ์ง๋๊ฒ.ย
def Add(x, y):
ย ย x + yย
x + y ๋ผ๋ expression ์ Add๋ผ๊ณ ์ด๋ฆ์ง๋๊ฒ.ย
๋จ์ง ์์๊ฒ์ Naming, ์๋๊ฒ์ procedure definition ์ด๋ ๊ฒ ์ด๋ฆ์ด ๋ค๋ฅด๊ฒ ๋ถ์ด์์ ๋ฟย
๊ฐ๋ ์ ์ผ๋ก๋ ๊ฐ์ด ๋ณผ์ ์๋ค~ ๋ผ๋๊ฒ ์๋๊นย ย
ํจ์๋ผ๋๊ฒ ์ด๋ฐ๊ฒ์ด์๊ตฐ
C๋ ์๋ ์๋๋ณธย ์ฝ๋๋ชฝํค์ธ ๋๋ ์ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์ด๊ตฌ์ย ย
๊ณต๋ถํ ๊ฑฐ ์ฐธ ๋ง๋ค... ์ด๋ ต๋ค