์ฝ”๋“œ๋ชฝํ‚ค๋ฅผ ๋ฒ—์–ด๋‚˜๊ธฐ ์œ„ํ•ดย SCIP๋ฅผ ์ •๋…์ค‘.ย 


์ €๋ฒˆ ํŽธ์—์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ดํ•ดํ•  ๋•Œ๋Š” ์ด ์–ธ์–ด๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ฐ„๋‹จํ•œ ์•„์ด๋””์–ด๋ฅผ ๋ณต์žกํ•œ ์•„์ด๋””์–ด๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ย 

๊ทธ๊ฒƒ์„ ์ดํ•ดํ•˜๋Š”๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋ผ๋Š” ๊ฒƒ์„ ๊ณต๋ถ€ํ–ˆ์Œ.ย 

๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฐœ๋…๋“ค์„ ์ตํžˆ๊ณ , ์ถ”์ƒํ™”์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋„ค์ด๋ฐ์„ ์ตํ˜”๋‹ค.ย 


๋Œ€์ถฉ ๋„˜์–ด๊ฐ„ ๊ฐ„๋‹จํ•œ ๊ฐœ๋…๋“ค์„ ๋‹ค์‹œ ๋ณต์Šตํ•ด ๋ณด์ž๋ฉด

Lisp ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œย 

>> 1ย 

์ด๋ ‡๊ฒŒย ์ž…๋ ฅํ•˜๋ฉด 1 ์ด๋ผ๊ณ  interpreter ์—์„œ ๋‚˜์˜จ๋‹ค.ย 

์—ฌ๊ธฐ์„œ 1์ด expression์ž„.ย 

๊ทธ๋ฆฌ๊ณ ย 

>> (+ 1 4)ย 

์ด๊ฑด 1 ๋”ํ•˜๊ธฐ 4์™€ ๊ฐ™๋‹ค.ย 

์—ฌ๊ธฐ์„œ +, 1, 4 ๋ฅผ subexpressionย 

๊ด„ํ˜ธ๋กœ ๋ฌถ์—ฌ ์žˆ๋Š”๊ฒƒ์„ combination์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. combination๋„ expression ์ž„.ย 

๊ทธ๋ฆฌ๊ณ  +๋Š” operator, 1 4 ๋Š” operand๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.ย 

๊ทธ๋ฆฌ๊ณ  Lisp์—์„œ ๋„ค์ด๋ฐ์€ย 

>> (define x 4)ย 

์ด๋ ‡๊ฒŒ ํ•จ. ํŒŒ์ด์ฌ์œผ๋กœ ์น˜์ž๋ฉด x = 4๋ž‘ ๊ฐ™๋‹ค.ย 

๊ทธ๋ฆฌ๊ณ  ๋„ค์ด๋ฐ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ผญ ํ•„์š”ํ•œ๊ฒƒ์ด value๋ฅผ ์‹ฌ๋ณผ์— ์–ด์‚ฌ์ธ ํ•˜๊ณ , ๋‚˜์ค‘์— ์‹ฌ๋ณผ์„ ํ†ตํ•ด์„œ value๋ฅผ ์ฝ์–ด ์˜ฌ ์ˆ˜ ์žˆ๋Š”ย 

name -object pair ๋ฅผ ํŠธ๋ž™ํ‚น ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.ย 

์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ environment (global environment)๋ผ๊ณ  ํ•œ๋‹ค.ย 


์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ๋ณต์Šต.ย 


๋‹ค์Œ ๊ณต๋ถ€ํ•  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์€ combination ์˜ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•์ด๋‹ค.ย 


combination ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฃฐ์„ ๋”ฐ๋ฅธ๋‹ค.ย 

1. combination ์˜ subexpression ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.ย 

2. ๊ฐ€์žฅ ์™ผ์ชฝ์˜ subexpression (operator)์˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ทธ ์˜†์˜ subexpression (operand)์—๊ฒŒ ์ ์šฉ์‹œํ‚จ๋‹ค.ย 


1๋ฒˆ ๋ฃฐ์„ ๋ณด๋ฉด combination ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ทธ ์•ˆ์˜ subexpression ์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š”๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค.ย 

์ฆ‰, 1๋ฒˆ๋ฃฐ์€ subexpression ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ 1๋ฒˆ๋ฃฐ์„ ๋ถ€๋ฅด๋Š”, ์ž์—ฐ์ ์œผ๋กœ recursive (์žฌ๊ท€, ๋ฐ˜๋ณต)์ ์ธ ์‚ฌ๊ณ ๋ฐฉ์‹์ธ ๊ฒƒ์ด๋‹ค.ย 


์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ combination ์„ ์ƒ๊ฐํ•ด ๋ณด๋ฉดย 

(* (+ 2 (* 4 6) (+ 3 5 7))


2cbc9e36ebd518986abce8954785776d66


์ด๋ ‡๊ฒŒ ํŠธ๋ฆฌ ๋ชจ์–‘์œผ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ์งˆ ์ˆ˜ ์žˆ์Œ.ย ์žฌ๊ท€์ ์œผ๋กœ ๋ฃฐ์ด ์ ์šฉ๋˜์–ด ์ง€๋Š”๊ฑธ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.ย 

๊ทธ๋ฆฌ๊ณ  ๋˜ํ•œ, 1๋ฒˆ ๋ฃฐ์„ ๊ณ„์† ์ ์šฉํ•˜๋Š”๊ฒƒ์œผ๋กœ ์ธํ•ด ๊ฒฐ๊ตญ์—๋Š” ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ์ต์Šคํ”„๋ ˆ์…˜์„ ์จ์•ผ ํ•œ๋‹ค๋Š”๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.ย 

๊ฒฐ๊ตญ ๋ชจ๋“  ํ”„๋กœ์‹œ์ ธ๋Š” combination ์ด ์•„๋‹Œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ expression ์œผ๋กœ ๊ท€๊ฒฐ๋œ๋‹ค๋Š”๊ฒƒ์ด๋‹ค.ย 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ผ๋Š”๊ฒƒ์€ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ expression ์ด๋ž‘ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํ”„๋ฆฌ์‹œ์ €, ๊ทธ๋ฆฌ๊ณ  ๋ช‡๋ช‡ special forms (์ผ๋ฐ˜ combination ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ํŠน๋ณ„ํ•œ ํ˜•ํƒœ๋“ค)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค๋Š”๊ฑฐ.ย 



์Œ. ๊ทธ๋ ‡๊ตฐ.ย 


๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ผ๋Š”๊ฑด ๊ฐ„๋‹จํ•œ ์•„์ด๋””์–ด๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณต์žกํ•˜๊ฒŒ ์กฐํ•ฉํ•ด ๋‚˜๊ฐ€๋А๋ƒ~ ์ด๊ฑธ ์ดํ•ดํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•œ๋ฐย 

๊ทธ ๊ฐ„๋‹จํ•œ ์•„์ด๋””์–ด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋„๊ตฌ๋กœ์„œ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒํ•œ ์ต์Šคํ”„๋ ˆ์…˜์ด๋ž‘ ํ”„๋ฆฌ์‹œ์ €, ์ŠคํŽ˜์…œ ํผ์ด ์ด์šฉ๋˜๊ณ  ์žˆ๋‹ค ~

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ๋“ค์„ ์กฐํ•ฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฃฐ์ด ์กด์žฌํ•œ๋‹ค ๋ผ๋Š”๊ฒƒ์ธ๊ฐ€.ย 

์—ฌํƒœ๊นŒ์ง€ ๋ฐฐ์šด๊ฑด ๋ญ... ์ฒด์Šค ๋ง์ด ํฐ์ด ์žˆ๊ณ  ๋‚˜์ดํŠธ๊ฐ€ ์žˆ๊ณ , ์ฒด์Šค ํŒ์€ ๋ˆˆ๊ธˆ์ด ๋ช‡๊ฐœ๊ณ  ํฐ์€ ์•ž์œผ๋กœ ํ•œ์นธ์”ฉ ์›€์ง์ผ ์ˆ˜ ์žˆ๊ณ ~ ์ด๋Ÿฐ๊ฒƒ์„ ๋ฐฐ์šด๊ฒƒ์ด๊ตฐ.ย 

์•ž์œผ๋กœ๋Š” ์ฒด์Šค์˜ ์ „๋žต์ด ๋‚˜์˜ค๋Š”๊ฑด๊ฐ€ ์˜คํ˜ธ...ย