μ—¬νƒœκΉŒμ§€ 정리 

μ‚¬λžŒμ΄ μ–΄λ– ν•œ μž‘μ—…μ„ ν”„λ‘œκ·Έλž˜λ° ν•  λ•Œμ—λŠ” 데이터λ₯Ό ν”„λ‘œμ‹œμ Έλ₯Ό μ΄μš©ν•΄ 가곡을 ν•œλ‹€.Β 

ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” μ‚¬λžŒμ˜ μž‘μ—…μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•΄μ„œ 데이터λ₯Ό ν‘œν˜„ν•˜κ³  ν”„λ‘œμ‹œμ Έλ₯Ό ν‘œν˜„ν•˜λŠ” 도ꡬ이닀.Β Β 

κ·ΈλŸ¬λ―€λ‘œ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ” κ·Έ μ–Έμ–΄κ°€ 데이터와 ν”„λ‘œμ‹œμ Έλ₯Ό μ–΄λ–»κ²Œ ν‘œν˜„ν•˜λŠ”μ§€λ₯Ό 이해해야 ν•œλ‹€.Β 

μ²˜μŒμ— μ–Έμ–΄μ˜ κ°€μž₯ 기본적인 ν”„λ¦¬λ―Έν‹°λΈŒ 데이터와 ν”„λ‘œμ‹œμ Έλ₯Ό κ³΅λΆ€ν–ˆκ³ Β 

λ‹€μŒμ— κ·Έ 기본적인 κ°œλ…μ„ μ–΄λ–»κ²Œ 좔상화 ν•˜λŠ”μ§€λ₯Ό κ³΅λΆ€ν–ˆκ³ ,Β 

κ·Έ κ°€μž₯ κ°„λ‹¨ν•œ 좔상화와 κ°œλ…λ“€λ‘œ μ–΄λ–»κ²Œ κ°„λ‹¨ν•œ μ•Œκ³ λ¦¬μ¦˜μ„ ν‘œν˜„ν•˜λŠ”μ§€ κ³΅λΆ€ν–ˆκ³ Β 

κ·Έ ν‘œν˜„ν•œ μ•Œκ³ λ¦¬μ¦˜λ“€μ„ μ–΄λ–»κ²Œ ν‰κ°€ν•˜λŠ”μ§€ κ³΅λΆ€ν–ˆλ‹€.Β 

μ§€κΈˆμ€ 더 κ³ λ„μ˜ 좔상화λ₯Ό μ–΄λ–»κ²Œ ν•˜λŠ”μ§€, μΆ”μƒν™”ν•œ ν”„λ‘œμ‹œμ Έλ₯Ό 더 μΆ”μƒν™”ν•˜λŠ” κ³ μ°¨ ν”„λ‘œμ‹œμ Έμ— λŒ€ν•΄ 곡뢀쀑.Β 

μ €λ²ˆν™” μ—μ„œλŠ” μΈμˆ˜λ‘œμ„œμ˜ ν”„λ‘œμ‹œμ Έλ₯Ό λ°°μ› λŠ”λ°, μ˜€λŠ˜μ€ λžŒλ‹€λ₯Ό 톡해 ν”„λ‘œμ‹œμ Έλ₯Ό λ§Œλ“œλŠ” 법을 λ°°μš΄λ‹€.Β 

------------------------------------------------------------------------------


ν”„λ‘œμ‹œμ Έλ₯Ό λ§Œλ“œλŠ” λ°©λ²•μœΌλ‘œ μ—¬νƒœκΉŒμ§€λŠ” define 을 톡해 μ •μ˜λ₯Ό ν•΄μ™”λ‹€.Β 

예λ₯Ό λ“€μ–΄μ„œ μ„Έμ œκ³±μ˜ 경우 


(define (cube x) (* x x x))


μ΄λŸ°μ‹μœΌλ‘œ define을 μ‚¬μš©ν•΄μ„œ ν”„λ‘œμ‹œμ Έλ₯Ό λ§Œλ“€μ—ˆλŠ”λ°, λžŒλ‹€λŠ” μ—¬κΈ°μ—μ„œ 이름을 λ„£μ§€ μ•Šκ³  λ°”λ‘œ ν”„λ‘œμ‹œμ Έλ₯Ό μ •μ˜ν•˜λŠ”κ²Œ κ°€λŠ₯ν•˜λ‹€.Β 


(lambda (x) (* x x x))


μ΄λŸ°μ‹μœΌλ‘œ λžŒλ‹€ 뒀에 νŒŒλΌλ©”ν„°λ₯Ό λ„£κ³  κ·Έ λ’€ κ°€λ‘œ μ•ˆμ— 보디λ₯Ό μ •μ˜ν•˜λŠ”κ²ƒ.Β 

2cf3c028e2f206a26d81f6e142847d

μ΄λ ‡κ²Œ λžŒλ‹€λ₯Ό μ“°κ²Œλ˜λ©΄ define으둜 이름을 뢙일 ν•„μš”κ°€ μ—†λŠ” 맀우 κ°„λ‹¨ν•œ μˆ˜μ‹μ΄λ‚˜ ν•œλ²ˆλ§Œ μ“°λŠ” 식듀은 λžŒλ‹€λ‘œ μ •μ˜ν•΄μ„œ μ‚¬μš©ν•˜λŠ”κ²Œ νŽΈν• λ•Œκ°€ μžˆλ‹€.Β 


예λ₯Ό λ“€μ–΄μ„œ λ‹€μŒκ³Ό 같은 식을 μƒκ°ν•΄λ³΄μž.Β 


2cf3c028e2f206a26d81f6e7418876


이 식은 μ΄λ ‡κ²Œλ„ ν‘œν˜„μ΄ κ°€λŠ₯ν•˜λ‹€.Β 


2cf3c028e2f206a26d81f6e6418571

이것을 define λ§Œμ„ μ΄μš©ν•΄ λ‚˜νƒ€λ‚΄λ©΄ 이런 μ½”λ“œκ°€ λœλ‹€.Β 


2cf3c028e2f206a26d81f6e440857364


μ—¬κΈ°μ„œ f-helper λΌλŠ” 이름은 νŠΉλ³„ν•œ λœ»λ„ κ°€μ§€κ³  μžˆμ§€ μ•ŠμœΌλ―€λ‘œ lambda둜 λŒ€μ²΄λ  수 μžˆλ‹€.Β 

그러면 μ΄λŸ°μ‹μœΌλ‘œ μ½”λ“œλ₯Ό μ“Έ 수 μžˆλ‹€.Β 

2cf3c028e2f206a26d81f6e2408172

define λ§Œμ„ μ‚¬μš©ν–ˆμ„ λ•Œμ™€ λΉ„κ΅ν–ˆμ„ λ•Œ, 많이 깔끔해진것을 확인 κ°€λŠ₯ν•˜λ‹€.

쑰금 더 μžμ„Ένžˆ μœ„μ˜ μ½”λ“œλ₯Ό ν•΄μ„€ν•˜λ©΄ μ•„λž˜μ˜ κ·Έλ¦Όκ³Ό κ°™λ‹€.Β 



2cf3c028e2f206a26d81f6e44185726d

μ΄λŸ¬ν•œ 방법이 λ„ˆλ¬΄λ‚˜ μœ μš©ν•˜κΈ° λ•Œλ¬Έμ— lisp μ—μ„œλŠ” let μ΄λΌλŠ” νŠΉλ³„ form을 μ œκ³΅ν•˜κ³  μžˆλ‹€.Β 

let 을 μ‚¬μš©ν•˜λ©΄ λ”μš±λ” μ•ŒκΈ° μ‰½κ²Œ μ½”λ“œ μž‘μ„±μ΄ κ°€λŠ₯ν•˜λ‹€.Β 


2cf3c028e2f206a26d81f6e04e8575

μ—¬κΈ°μ„œ let 은 μ•„λž˜μ™€ 같은 ν‘œν˜„μ„ λ”°λ₯Έλ‹€.Β 

2cf3c028e2f206a26d81f6e1428474


μ˜μ–΄λ‘œ ν‘œν˜„ν•˜μžλ©΄ 이렇닀.Β 

2cf3c028e2f206a26d81f6e2408771


이 let μ΄λž€κ²ƒμ€ λ‹¨μˆœνžˆΒ lambda의 μ•„λž˜μ˜ μ½”λ“œλ₯Ό νŠΉλ³„ν•œ 폼으둜 ν‘œν˜„ν•œκ²ƒ. λ„ˆλ¬΄λ‚˜ μœ μš©ν•œ ν‘œν˜„μ΄κΈ° λ•Œλ¬Έμ— λ”°λ‘œ 폼을 μ§€μ •ν•΄μ€€λ“―.Β 


2cf3c028e2f206a26d81f6e04f8271

μœ„μ˜ let 을 define으둜 λ°”κΏ” 써보면 이런 μ½”λ“œκ°€ λœλ‹€.Β 


2cf3c028e2f206a26d81f6e3438571

ν•˜μ§€λ§Œ 이런 κ²½μš°λŠ” let을 μ“°λŠ”κ²ƒμ΄ λ”μš± κΉ”λ”ν•˜κ²Œ μ“Έ 수 μžˆλ‹€λŠ”κ±°.Β 


μ΄λ ‡κ²Œ μ˜€λŠ˜μ€ lambdaκ°€ 무엇인지, let 이 무엇인지 μ•Œμ•„λ³΄μ•˜λ‹€.Β 

κ°„λ‹¨ν•˜κ΅¬μ—¬Β