์ €๋ฒˆ์—๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ฐœ๋…์„ ๊ณต๋ถ€ํ–ˆ๋‹ค.ย 

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๋Š” ์†๋„ ์•ˆ๋Œ€๋ณธย ์ฝ”๋“œ๋ชฝํ‚ค์ธ ๋‚˜๋Š” ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด๊ตฌ์š”ย ย