Skip to content

Commit

Permalink
update: src/
Browse files Browse the repository at this point in the history
  • Loading branch information
netpyoung committed Jan 27, 2024
1 parent 9e7135f commit 37f4107
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 32 deletions.
4 changes: 2 additions & 2 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

- [λ“€μ–΄κ°€λ©°](./Index.md)

# 03. 12개의 레슨으둜 λ°°μš°λŠ” ν•„μˆ˜ λ¦¬μŠ€ν”„
# 03μž₯. 12개의 레슨으둜 λ°°μš°λŠ” ν•„μˆ˜ λ¦¬μŠ€ν”„

- [03. 12개의 레슨으둜 λ°°μš°λŠ” ν•„μˆ˜ λ¦¬μŠ€ν”„](./ch03/ch03.md)
- [03μž₯. 12개의 레슨으둜 λ°°μš°λŠ” ν•„μˆ˜ λ¦¬μŠ€ν”„](./ch03/ch03.md)
- [레슨 01. ν•„μˆ˜ - μ‹ νƒμŠ€](./ch03/lesson_01.md)
- [레슨 02. ν•„μˆ˜ - 평가](./ch03/lesson_02.md)
- [레슨 03. μŠ€νŽ˜μ…œ 폼과 λ§€ν¬λ‘œμ— λŒ€ν•œ 예제](./ch03/lesson_03.md)
Expand Down
2 changes: 1 addition & 1 deletion src/ch03/ch03.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 03. 12개의 레슨으둜 λ°°μš°λŠ” ν•„μˆ˜ λ¦¬μŠ€ν”„
# 03μž₯. 12개의 레슨으둜 λ°°μš°λŠ” ν•„μˆ˜ λ¦¬μŠ€ν”„


이번 μž₯은 μ—¬λŸ¬λΆ„μ—κ²Œ λ¦¬μŠ€ν”„λ₯Ό μ‹œμž‘ν•˜κΈ°μ— μ•žμ„œ μ•Œμ•„μ•Ό ν•  λͺ¨λ“ κ²ƒμ„ κ°€λ₯΄μΉ  κ²ƒμž…λ‹ˆλ‹€.
Expand Down
4 changes: 2 additions & 2 deletions src/ch03/lesson_01.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

- [원문](https://dept-info.labri.fr/~strandh/Teaching/MTP/Common/David-Lamkins/chapter03-01.html)

## λ¦¬μŠ€νŠΈλŠ” κ΄„ν˜Έλ‘œ κ°μ‹Έμ Έμžˆλ‹€.
## λ¦¬μŠ€νŠΈλŠ” κ΄„ν˜Έλ‘œ κ°μ‹Έμ Έμžˆλ‹€

λ¦¬μŠ€ν”„μ— λŒ€ν•΄ μš°μ„ μ μœΌλ‘œ μ•Œμ•„ν•  κ²ƒμž…λ‹ˆλ‹€: κ΄„ν˜Έλ‘œ λ‘˜λŸ¬μ‹ΈμΈ λͺ¨λ“ κ²ƒμ€ `리슀트(list)`이닀.

Expand Down Expand Up @@ -61,7 +61,7 @@
λ¦¬μŠ€ν”„μ—μ„œ `리슀트`λŠ” μ—¬λŸ¬κ°€μ§€κ°€ 될 수 μžˆμŠ΅λ‹ˆλ‹€. κ°€μž₯ 일반적인 경우, `리슀트`λŠ” ν”„λ‘œκ·Έλž¨μ΄λ‚˜ 데이터가 될 수 μžˆμŠ΅λ‹ˆλ‹€. 그리고 `리슀트`κ°€ 슀슀둜 λ‹€λ₯Έ 리슀트λ₯Ό λ§Œλ“€ 수 μžˆκΈ°μ—, μ—¬λŸ¬λΆ„μ€ λ³΅μž‘ν•œ λ°μ΄ν„°μ˜ μ‘°ν•©κ³Ό μ—¬λŸ¬ λ‹¨κ³„μ˜ 리슀트 ꡬ쑰둜 된 ν”„λ‘œκ·Έλž¨μ„ κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 잘 μ΄ν•΄ν•˜λŠ” μžμ—κ²ŒλŠ” λ¦¬μŠ€ν”„λŠ” μ—„μ²­λ‚œ μœ μ—°μ„±μ„ λΆ€μ—¬ν•΄ 쀄 것이며, 그렇지 μ•Šμ€ μžμ—κ²ŒλŠ” λ§Žμ€ ν˜Όλž€μ„ 쀄 κ²ƒμž…λ‹ˆλ‹€. 이번μž₯을 κ³„μ†ν•΄μ„œ λ‚˜μ•„κ°€λ©΄μ„œ μ΄λŸ¬ν•œ ν˜Όλž€μ„ 없애도둝 λ…Έλ ₯ν•΄ λ΄…μ‹œλ‹€.


## μ•„ν†°(Atom)은 κ³΅λ°±μ΄λ‚˜ κ΄„ν˜Έλ‘œ λΆ„λ¦¬λœ κ²ƒμž…λ‹ˆλ‹€.
## μ•„ν†°(Atom)은 κ³΅λ°±μ΄λ‚˜ κ΄„ν˜Έλ‘œ λΆ„λ¦¬λœ 것이닀

이제 μ—¬λŸ¬λΆ„μ€ 리슀트λ₯Ό ꡬ뢄할 수 있으며, κ΄„ν˜Έ 사이에 λ‚˜νƒ€λ‚˜μ§€λ§Œ (λ¦¬μŠ€νŠΈκ°€ μ•„λ‹Œ)λ‹¨μ–΄λ‚˜ 숫자인 것듀에 λŒ€ν•œ 것듀을 뭐라고 λΆ€λ₯΄λŠ”지 μ•Œκ³  싢을 κ²ƒμž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ 것듀을 `μ•„ν†°(atom)`이라 λΆ€λ¦…λ‹ˆλ‹€.

Expand Down
19 changes: 10 additions & 9 deletions src/ch03/lesson_02.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,29 @@

- [원문](https://dept-info.labri.fr/~strandh/Teaching/MTP/Common/David-Lamkins/chapter03-02.html)

## 폼(form)은 평가될 수 μžˆμŠ΅λ‹ˆλ‹€.
## 폼(form)은 평가될 수 μžˆλ‹€

`폼(form)`은 `μ•„ν†°(atom)` ν˜Ήμ€ `리슀트(list)`κ°€ 될 수 μžˆμŠ΅λ‹ˆλ‹€. μ€‘μš”ν•œ 것은 `폼`이 `평가(evaluation)`λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. ν‰κ°€λΌλŠ” 것은 μƒλ‹Ήν•œ 기술적 의미λ₯Ό μ§€λ‹ˆκ³  있으며, 이번 μ„Ήμ…˜μ—μ„œ μ„œμ„œνžˆ κ·Έ λͺ¨μŠ΅μ„ λ“œλŸ¬λ‚˜κ²Œ 될 κ²ƒμž…λ‹ˆλ‹€.

`폼`이 아톰이라면 ν‰κ°€λŠ” λ‹¨μˆœν•©λ‹ˆλ‹€. λ¦¬μŠ€ν”„λŠ” 아톰을 마치 μ΄λ¦„μ²˜λŸΌ 닀루고, 값이 μ‘΄μž¬ν•œλ‹€λ©΄ 이름에 μ €μž₯된 값을 μ–»μŠ΅λ‹ˆλ‹€. μ—¬λŸ¬λΆ„μ€ μ•„λ§ˆλ„ μ™œ μ œκ°€ 아톰은 λ³€μˆ˜λΌκ³  μ§μ ‘μ μœΌλ‘œ λ§ν•˜μ§€ μ•ŠλŠ”μ§€ μ˜μ•„ν•  κ²ƒμž…λ‹ˆλ‹€. λͺ…ν™•ν•˜κ²Œ μ •μ˜ν•˜μ§€ μ•Šμ€ μ΄μœ λŠ” 아톰은 λ³€μˆ˜μ΄κ±°λ‚˜ μƒμˆ˜μ˜ 값을 κ°€μ§ˆ 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. 그리고 μ•„ν†°μ˜ 값은 κ²½μš°μ— 따라 μƒμˆ˜κ°€ 될 수 도 μžˆμŠ΅λ‹ˆλ‹€.

μˆ«μžλŠ” `μ•„ν†°`μž…λ‹ˆλ‹€(이 값은 μƒμˆ˜μž…λ‹ˆλ‹€). λ¦¬μŠ€ν”„λŠ” μˆ«μžμ— 값을 μ €μž₯ ν•  수 μ—†μŠ΅λ‹ˆλ‹€: μˆ«μžλŠ” 자체적으둜 ν‰κ°€λ©λ‹ˆλ‹€.

μ •μ˜κ°€ μ™„μ „νžˆ 내렀지지 μ•Šμ€ μƒˆλ‘œμš΄ μš©μ–΄λ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€. 이제, 심볼을 값을 κ°€μ§ˆ 수 μžˆλŠ” `μ•„ν†°`이라고 μ—¬κΈ°κΈ° λ°”λžλ‹ˆλ‹€. 레슨 5[p 53]μ—μ„œ 심볼에 λŒ€ν•΄ λ”μš± μžμ„Ένžˆ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.
μ •μ˜κ°€ μ™„μ „νžˆ 내렀지지 μ•Šμ€ μƒˆλ‘œμš΄ μš©μ–΄λ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€. 이제, 심볼을 값을 κ°€μ§ˆ 수 μžˆλŠ” `μ•„ν†°`이라고 μ—¬κΈ°κΈ° λ°”λžλ‹ˆλ‹€. [레슨 5](./lesson_05.md)[p 53]μ—μ„œ 심볼에 λŒ€ν•΄ λ”μš± μžμ„Ένžˆ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.

`defconstant`둜 μ •μ˜λœ 심볼은 μƒμˆ˜ 값을 μ§€λ‹™λ‹ˆλ‹€. λ¦¬μŠ€ν”„λŠ” λ³€μˆ˜μ²˜λŸΌ 아톰에 값을 μ €μž₯ν•œ λ‹€μŒ, 값을 λ°”κΏ€ 수 μ—†λ‹€λΌλŠ” λ©”λͺ¨λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.

νŒ¨ν‚€μ§€μ— μžˆλŠ” `ν‚€μ›Œλ“œ(keyword) 심볼`은 슀슀둜 ν‰κ°€λ©λ‹ˆλ‹€. νŒ¨ν‚€μ§€μ— κ΄€ν•œ 것은 31μž₯[p 247]μ—μ„œ μžμ„Ένžˆ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€. μ§€κΈˆ, μ—¬λŸ¬λΆ„μ΄ μ•Œμ•„μ•Ό 할것은 (νŒ¨ν‚€μ§€ ν”„λ¦¬ν”½μŠ€λΌ λΆˆλ¦¬λŠ”) `:` 문자둜 μ‹œμž‘ν•˜λŠ” 심볼은 `ν‚€μ›Œλ“œ 심볼`μ΄λΌλŠ” κ²ƒμž…λ‹ˆλ‹€. `ν‚€μ›Œλ“œ 심볼`은 κ·Έ μžμ‹ μ„ κ°’μœΌλ‘œ κ°–μŠ΅λ‹ˆλ‹€.

λ‹€μ–‘ν•œ λ°©μ‹μœΌλ‘œ μ‹¬λ³Όμ—μ„œ 값을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. λ¦¬μŠ€ν”„λŠ” μ‹€μ œλ‘œ 심볼에 λ‹€μ–‘ν•œ 값을 μ €μž₯ν•©λ‹ˆλ‹€. ν•˜λ‚˜λŠ” λ³€μˆ˜λ‘œμ„œμ˜ μ‹¬λ³Όμ˜ κ°’. 그리고 λ‹€λ₯Έ ν•˜λ‚˜λŠ” ν•¨μˆ˜λ‘œμ„œ μ‹¬λ³Όμž…λ‹ˆλ‹€. 또 λ‹€λ₯Έ 것듀은 ν•΄λ‹Ή 심볼에 λŒ€ν•œ λ¬Έμ„œλ₯Ό μ–»κ±°λ‚˜, 좜λ ₯κ°’μœΌλ‘œ ν™œμš©ν•˜κ±°λ‚˜, μ—°κ΄€λ¦¬μŠ€νŠΈ(associated list)처럼 μ†μ„±κ°’μœΌλ‘œ 쓰이기도 ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 것듀에 λŒ€ν•΄ 레슨 5 [p 53], 레슨 6 [p 56], 레슨 7 [p 59]μ—μ„œ λ”μš± μžμ„Ένžˆ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.
λ‹€μ–‘ν•œ λ°©μ‹μœΌλ‘œ μ‹¬λ³Όμ—μ„œ 값을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. λ¦¬μŠ€ν”„λŠ” μ‹€μ œλ‘œ 심볼에 λ‹€μ–‘ν•œ 값을 μ €μž₯ν•©λ‹ˆλ‹€. ν•˜λ‚˜λŠ” λ³€μˆ˜λ‘œμ„œμ˜ μ‹¬λ³Όμ˜ κ°’. 그리고 λ‹€λ₯Έ ν•˜λ‚˜λŠ” ν•¨μˆ˜λ‘œμ„œ μ‹¬λ³Όμž…λ‹ˆλ‹€. 또 λ‹€λ₯Έ 것듀은 ν•΄λ‹Ή 심볼에 λŒ€ν•œ λ¬Έμ„œλ₯Ό μ–»κ±°λ‚˜, 좜λ ₯κ°’μœΌλ‘œ ν™œμš©ν•˜κ±°λ‚˜, μ—°κ΄€λ¦¬μŠ€νŠΈ(associated list)처럼 μ†μ„±κ°’μœΌλ‘œ 쓰이기도 ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 것듀에 λŒ€ν•΄ [레슨 5](./lesson_05.md) [p 53], [레슨 6](./lesson_06.md) [p 56], [레슨 7](./lesson_07.md) [p 59]μ—μ„œ λ”μš± μžμ„Ένžˆ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.

폼이 리슀트라면, 첫번째 μš”μ†ŒλŠ” μ‹¬λ³Όμ΄κ±°λ‚˜ λžŒλ‹€(lambda)ν‘œν˜„μ‹μ΄λΌ λΆˆλ¦¬λŠ” νŠΉλ³„ν•œ 폼일 κ²ƒμž…λ‹ˆλ‹€. (λžŒλ‹€ ν‘œν˜„μ‹μ— λŒ€ν•œκ²ƒμ€ μž μ‹œ λ’€λ‘œ λ―Έλ£¨κ² μŠ΅λ‹ˆλ‹€.)
심볼은 ν•¨μˆ˜μ˜ 이름을 μ§“μŠ΅λ‹ˆλ‹€. λ¦¬μŠ€ν”„μ—μ„œ 심볼 `+`, `-`, `*`, `/`λŠ” 일반적인 μ‚°μˆ  μ—°μ‚°μžμž…λ‹ˆλ‹€: λ§μ…ˆ, λΉ¨μ…ˆ, κ³±μ…ˆ, λ‚˜λˆ„κΈ°. 각 심볼은 μ‚°μˆ  연산을 μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜μ™€ μ—°κ΄€λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.

λ”°λΌμ„œ λ¦¬μŠ€ν”„κ°€ 폼 `(+ 2 3)`을 ν‰κ°€ν•˜λ©΄, μ΄λŠ” λ§μ…ˆ ν•¨μˆ˜`+`에 인자 `2`와 `3`을 μ μš©μ‹œν‚¬ 것이며, μ˜ˆμƒλ˜λ“―μ΄ κ²°κ³Ό `5`λ₯Ό λ°˜ν™˜ν•  κ²ƒμž…λ‹ˆλ‹€. ν•¨μˆ˜λ‘œμ„œ 심볼 `+`κ°€ μΈμžλ“€ μ•žμ— μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” `μ „μœ„ ν‘œκΈ°λ²•(prefix notation)`μž…λ‹ˆλ‹€. λ¦¬μŠ€ν”„κ°€ 리슀트λ₯Ό 폼으둜 ν‰κ°€ν•˜κΈ° μœ„ν•΄ 무얼할 것인지 μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„ , 리슀트의 첫번째 μš”μ†Œλ₯Ό μ‚΄νŽ΄λ³΄μ‹œκΈ° λ°”λžλ‹ˆλ‹€.


## ν•¨μˆ˜λŠ” 인자λ₯Ό 받을 수 μžˆμŠ΅λ‹ˆλ‹€.
## ν•¨μˆ˜λŠ” 인자λ₯Ό 받을 수 μžˆλ‹€

주어진 리슀트λ₯Ό ν‰κ°€ν• λ•Œ λ¦¬μŠ€ν”„λŠ” 폼을 ν•¨μˆ˜ 호좜둜써 λ‹€λ£Ήλ‹ˆλ‹€. μ§€κΈˆλΆ€ν„° μš°λ¦¬λŠ” 수 λ§Žμ€ λ¦¬μŠ€ν”„μ˜ 평가λ₯Ό 보게 될 것이며, λ¦¬μŠ€ν”„μ˜ μž…λ ₯κ³Ό 이의 λ°˜μ‘μ„ κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같이 μ‹œκ°μ  ν‘œμ‹œλ₯Ό ν•  κ²ƒμž…λ‹ˆλ‹€:

Expand Down Expand Up @@ -105,7 +105,7 @@ WHAT-IS-THIS?
심볼 `WHAT-IS-THIS?`λŠ” λ¦¬μŠ€ν”„μ— μ˜ν•΄ 미리 μ •μ˜λ˜μ§€ μ•Šμ•„ 값을 μ§€λ‹ˆμ§€ μ•ŠμœΌλ©°, 이에 값을 얻을 수 μ—†μŠ΅λ‹ˆλ‹€. μ‹œμŠ€ν…œμ€ κ°’ λŒ€μ‹ μ— μ—λŸ¬λ©”μ‹œμ§€λ‘œ 응닡할 κ²ƒμž…λ‹ˆλ‹€. μ—λŸ¬ λ©”μ‹œμ§€ μ•žμ— `;;>|`λ₯Ό λΆ™μ—¬ ν‘œμ‹œν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ‹œμŠ€ν…œμ— 따라 λ‹€λ₯Έ μ—λŸ¬ λ©”μ‹œμ§€κ°€ 좜λ ₯될 수 μžˆμŠ΅λ‹ˆλ‹€.


## ν•¨μˆ˜λŠ” λ‹€μˆ˜μ˜ 값을 λ°˜ν™˜ ν•  수 μžˆλ‹€.
## ν•¨μˆ˜λŠ” λ‹€μˆ˜μ˜ 값을 λ°˜ν™˜ ν•  수 μžˆλ‹€

μš°λ¦¬λŠ” μ’…μ’… λ‹€μˆ˜μ˜ 값을 λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜λ₯Ό κ°–κΈΈ μ›ν•©λ‹ˆλ‹€. 예λ₯Όλ“€μ–΄, λ°μ΄ν„°λ² μ΄μŠ€ 전체λ₯Ό μ‚΄νŽ΄λ³΄λŠ” ν•¨μˆ˜λŠ” μš”κ΅¬ν•˜λŠ” κ°’κ³Ό μ™„λ£Œμƒνƒœμ½”λ“œλ₯Ό λ™μ‹œμ— λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이λ₯Ό ν–‰ν•  λ°©λ²•μœΌλ‘œλŠ” ν•΄λ‹Ή 결과값을 μ €μž₯ν•  μœ„μΉ˜ 자체λ₯Ό ν•¨μˆ˜μ— μ „λ‹¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€; κ°€λŠ₯은 ν•˜μ§€λ§Œ, λ¦¬μŠ€ν”„ ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” 맀우 λ“œλ―„ μΌμž…λ‹ˆλ‹€.

Expand All @@ -126,13 +126,14 @@ WHAT-IS-THIS?
λ¦¬μŠ€ν”„κ°€ `values` 폼으둜 각 μΈμžμ— λŒ€ν•œ 값을 λ°˜ν™˜ν•˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


## ν•¨μˆ˜μ—μ„œ 인자λ₯Ό μˆ˜μ •ν•˜μ§€ μ•ŠλŠ”λ‹€.
## ν•¨μˆ˜ μ•ˆμ—μ„œ 인자λ₯Ό μˆ˜μ •ν•˜μ§€ μ•ŠλŠ”λ‹€

μ•žμ„œ, 결과값을 μ €μž₯ν•  μœ„μΉ˜ 자체λ₯Ό 인자둜 ν•¨μˆ˜μ— λ„˜κΈΈ 수 있으며, ν•¨μˆ˜κ°€ κ·Έ μœ„μΉ˜μ˜ 값을 λ°”κΏ€ μˆ˜λ„ μžˆλ‹€κ³  λ§ν•œ λ°”κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ 언어듀은 이λ₯Ό 일반적인 λ ˆνŒŒν† λ¦¬λ‘œ 말할지라도, λ¦¬μŠ€ν”„ ν”„λ‘œκ·Έλž¨μ—μ„œ 맀우 λ“œλ¬Έ μΌμž…λ‹ˆλ‹€.

μ €μž₯ν•  μœ„μΉ˜μ— ν‚€μ›Œλ“œκ°€ μ•„λ‹Œ μ‹¬λ³Όμ΄λ‚˜ ꡬ쑰체 같은 것을 넣을 수 λŠ” μžˆμŠ΅λ‹ˆλ‹€. 심볼을 넣을 경우, ν•¨μˆ˜λŠ” 심볼에 μƒˆλ‘œμš΄ 값을 λ„£λŠ” μ½”λ“œλ₯Ό μˆ˜ν–‰ν•΄μ•Όλ§Œ ν•©λ‹ˆλ‹€. ꡬ쑰체λ₯Ό 넣을 경우 ꡬ쑰체의 각 값을 μ˜¬λ°”λ₯΄κ²Œ λ³€κ²½ν•˜λŠ” μ½”λ“œλ₯Ό μˆ˜ν–‰ν•΄μ•Όλ§Œ ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μž‘μ—… μžμ²΄λ„ λ³΅μž‘ν•˜κ³  μ΄λ ‡κ²Œ μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ„ μ΄ν•΄ν•˜λŠ” 것도 μ–΄λ ΅μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ¦¬μŠ€ν”„ ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ€ 일반적으둜 인자λ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ , μΈμžλŠ” 인자, κ²°κ³ΌλŠ” 결과둜 κ΅¬λΆ„λœ ν•¨μˆ˜λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.

## μΈμžλŠ” (보톡은) ν•¨μˆ˜κ°€ 적용 전에 ν‰κ°€λœλ‹€.

## μΈμžλŠ” (보톡은) ν•¨μˆ˜κ°€ 적용 전에 ν‰κ°€λœλ‹€

λ¦¬μŠ€ν”„κ°€ ν•¨μˆ˜λ₯Ό ν‰κ°€ν•˜λ©΄, μ•žμ„œ λ΄€λ˜κ²ƒμ²˜λŸΌ[p 42], 항상 λͺ¨λ“  인자λ₯Ό μš°μ„ μ μœΌλ‘œ ν‰κ°€ν•©λ‹ˆλ‹€. λΆˆν–‰νžˆλ„, λͺ¨λ“  κ·œμΉ™μ—λŠ” μ˜ˆμ™Έκ°€ 있으며, (곧 보게될 κ²ƒμ²˜λŸΌ)이 κ·œμΉ™λ„ μ˜ˆμ™ΈλŠ” μ•„λ‹™λ‹ˆλ‹€... λ¬Έμ œλŠ” λ¦¬μŠ€ν”„κ°€ ν•¨μˆ˜μ˜ 인자λ₯Ό ν‰κ°€ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€λΌλŠ” 점이 μ•„λ‹ˆλΌ, 리슀트 폼은 ν•¨μˆ˜ 호좜이 아닐 수 도 μžˆλ‹€λΌλŠ” μ μž…λ‹ˆλ‹€.

Expand All @@ -142,12 +143,12 @@ WHAT-IS-THIS?
리슀트 폼이 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄, 이의 μΈμžλŠ” 항상 μ’ŒμΈ‘μ—μ„œ 우츑으둜 μˆœμ„œλŒ€λ‘œ ν‰κ°€λ©λ‹ˆλ‹€.


## μŠ€νŽ˜μ…œ 폼과 λ§€ν¬λ‘œλŠ” 인자의 ν‰κ°€ν•˜λŠ” 방법을 λ°”κΏ€ 수 μžˆλ‹€.
## μŠ€νŽ˜μ…œ 폼과 λ§€ν¬λ‘œλŠ” 인자의 ν‰κ°€ν•˜λŠ” 방법을 λ°”κΏ€ 수 μžˆλ‹€

리슀트 폼이 ν•¨μˆ˜ 호좜이 아닐 수 도 μžˆλ‹€ 라고 ν–ˆλŠ”λ°, 그럼 무엇이 될 수 μžˆμ„κΉŒμš”?
2가지 κ²½μš°κ°€ μžˆμ§€λ§Œ, κ²°κ³ΌλŠ” κ°™μŠ΅λ‹ˆλ‹€: λͺ‡λͺ‡ μΈμžλŠ” ν‰κ°€λ˜λ©° λͺ‡λͺ‡μ€ 평가가 μ•ˆλ©λ‹ˆλ‹€. νΌμ΄λ‚˜ 폼이 μ•„λ‹ˆλƒμ— λ‹¬λ €μžˆμŠ΅λ‹ˆλ‹€. 이 μ˜ˆμ™Έμ— λŒ€ν•΄μ„œλ§Œ μ•Œλ©΄ λ©λ‹ˆλ‹€. λ‹€ν–‰νžˆλ„, λŒ€λΆ€λΆ„μ˜ λ¦¬μŠ€ν”„ μ‹œμŠ€ν…œμ€ ν•œλ‘λ²ˆμ˜ ν‚€ μž…λ ₯으둜 이에 λŒ€ν•œ 온라인 λ¬Έμ„œλ₯Ό μ—¬λŸ¬λΆ„μ—κ²Œ 보여쀄 κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ“  μΈμžκ°€ ν‰κ°€λ˜μ§€ μ•ŠλŠ” 폼은 두가지가 μžˆμŠ΅λ‹ˆλ‹€: μŠ€νŽ˜μ…œ 폼과 맀크둜. λ¦¬μŠ€ν”„λŠ” λͺ‡λͺ‡ μŠ€νŽ˜μ…œ 폼을 미리 μ •μ˜ν•΄ λ‘μ—ˆμŠ΅λ‹ˆλ‹€. μ–Έμ–΄ 자체의 μ£Όμš” κΈ°λŠ₯이기에 μ—¬λŸ¬λΆ„λ§Œμ˜ μŠ€νŽ˜μ…œ 폼을 μΆ”κ°€ν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. 또 λ¦¬μŠ€ν”„λŠ” λͺ‡λͺ‡ 맀크둜λ₯Ό 미리 μ •μ˜ν•΄λ‘μ—ˆμŠ΅λ‹ˆλ‹€. 단, λ§€ν¬λ‘œλŠ” 저희가 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ¦¬μŠ€ν”„μ˜ 맀크둜λ₯Ό μ΄μš©ν•˜λ©΄ μ–Έμ–΄μ˜ κ°•λ ₯ν•œ νž˜μ„ μ΄μš©ν•˜μ—¬ 우리만의 κΈ°λŠ₯을 μΆ”κ°€ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 μž₯의 λ’· λΆ€λΆ„μ—μ„œ κ°„λž΅ν•˜κ²Œ κ°„λ‹¨ν•œ 맀크둜λ₯Ό μž‘μ„±ν•΄ λ³Ό κ²ƒμž…λ‹ˆλ‹€ [p 61]. 20μž₯μ—μ„œλŠ”[p 188] λ³΅μž‘ν•œ λ§€ν¬λ‘œμ— λŒ€ν•΄ 닀뀄볼 κ²ƒμž…λ‹ˆλ‹€.
λͺ¨λ“  μΈμžκ°€ ν‰κ°€λ˜μ§€ μ•ŠλŠ” 폼은 두가지가 μžˆμŠ΅λ‹ˆλ‹€: μŠ€νŽ˜μ…œ 폼과 맀크둜. λ¦¬μŠ€ν”„λŠ” λͺ‡λͺ‡ μŠ€νŽ˜μ…œ 폼을 미리 μ •μ˜ν•΄ λ‘μ—ˆμŠ΅λ‹ˆλ‹€. μ–Έμ–΄ 자체의 μ£Όμš” κΈ°λŠ₯이기에 μ—¬λŸ¬λΆ„λ§Œμ˜ μŠ€νŽ˜μ…œ 폼을 μΆ”κ°€ν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. 또 λ¦¬μŠ€ν”„λŠ” λͺ‡λͺ‡ 맀크둜λ₯Ό 미리 μ •μ˜ν•΄λ‘μ—ˆμŠ΅λ‹ˆλ‹€. 단, λ§€ν¬λ‘œλŠ” 저희가 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ¦¬μŠ€ν”„μ˜ 맀크둜λ₯Ό μ΄μš©ν•˜λ©΄ μ–Έμ–΄μ˜ κ°•λ ₯ν•œ νž˜μ„ μ΄μš©ν•˜μ—¬ 우리만의 κΈ°λŠ₯을 μΆ”κ°€ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 μž₯의 λ’· λΆ€λΆ„μ—μ„œ κ°„λž΅ν•˜κ²Œ κ°„λ‹¨ν•œ [맀크둜λ₯Ό μž‘μ„±ν•΄ λ³Ό κ²ƒμž…λ‹ˆλ‹€](./lesson_08.md) [p 61]. 20μž₯μ—μ„œλŠ”[p 188] λ³΅μž‘ν•œ λ§€ν¬λ‘œμ— λŒ€ν•΄ 닀뀄볼 κ²ƒμž…λ‹ˆλ‹€.



Expand Down
4 changes: 2 additions & 2 deletions src/ch03/lesson_03.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,14 +231,14 @@ a

차이점은 `(setq a b)`μ—μ„œ μ‚¬μš©λœ `b`의 *κ°’* κ³Ό `(setq a (quote b))`μ—μ„œμ˜ *심볼* `b`μž…λ‹ˆλ‹€.

`quote` 폼은 맀우 자주 μ‚¬μš©λ˜λ©°, λ¦¬μŠ€ν”„λŠ” μ•½μΉ­ ν‘œκΈ°λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€:
`quote` 폼은 맀우 자주 μ‚¬μš©λ˜λ©°, λ¦¬μŠ€ν”„λŠ” λ‹€μŒκ³Ό 같은 ν‘œκΈ°λ²•λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€:


``` txt
(QUOTE form) == 'form
```

λ¦¬μŠ€ν”„λŠ” 리더 맀크둜λ₯Ό 톡해 `'`와 `quote`λ₯Ό λ™μΌν•˜κ²Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€. 레슨 12 [p 82]μ—μ„œ μ–΄λ–»κ²Œ μ—¬λŸ¬λΆ„λ§Œμ˜ 리더 맀크둜λ₯Ό μ •μ˜ν•  수 μžˆλŠ”μ§€ κ°„λž΅ν•˜κ²Œ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.
λ¦¬μŠ€ν”„λŠ” 리더 맀크둜λ₯Ό 톡해 `'`와 `quote`λ₯Ό λ™μΌν•˜κ²Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€. [레슨 12](./lesson_12.md) [p 82]μ—μ„œ μ–΄λ–»κ²Œ μ—¬λŸ¬λΆ„λ§Œμ˜ 리더 맀크둜λ₯Ό μ •μ˜ν•  수 μžˆλŠ”μ§€ κ°„λž΅ν•˜κ²Œ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.


## 짚고 λ„˜μ–΄κ°€κΈ°
Expand Down
2 changes: 1 addition & 1 deletion src/ch03/lesson_05.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ first

심볼은 λ³€μˆ˜λ‚˜ ν•¨μˆ˜μ˜ κ°’ 외에 λ‹€λ₯Έ 값을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. 심볼은 λ¬Έμ„œ, ν”„λ‘œνΌν‹° 리슀트(property list) ν˜Ήμ€ 좜λ ₯μ‹œ ν‘œμ‹œλ˜λŠ” 값을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. μ‹¬λ³Όμ˜ λ¬Έμ„œλŠ” ν•΄λ‹Ή μ‹¬λ³Όμ˜ μ„€λͺ…을 μœ„ν•œ ν…μŠ€νŠΈμž…λ‹ˆλ‹€. `documentation` 폼을 μ‚¬μš©ν•˜κ±°λ‚˜ μ‹¬λ³Όμ˜ 값을 μ •μ˜ν•˜λŠ” λͺ‡λͺ‡ νΌμ—μ„œ 심볼에 λŒ€ν•œ λ¬Έμ„œλ„ 같이 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. 심볼은 λ‹€μ–‘ν•œ 의미λ₯Ό κ°€μ§ˆ 수 μžˆμœΌλ―€λ‘œ ν•¨μˆ˜ 및 λ³€μˆ˜μ™€ 같이 μ—¬λŸ¬ 가지 μ˜λ―Έμ— λ§žλŠ” 각각에 λŒ€ν•œ λ¬Έμ„œλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œνΌν‹° λ¦¬μŠ€νŠΈλŠ” μ—”νŠΈλ¦¬(entry)λ‹Ή ν•˜λ‚˜μ˜ ν‚€λ₯Ό μ§€λ‹Œ μžκ·Έλ§ˆν•œ 데이터 λ² μ΄μŠ€μ™€ κ°™μŠ΅λ‹ˆλ‹€. 레슨 10 [p 65]μ—μ„œ μ΄λŸ¬ν•œ μ‹¬λ³Όμ˜ μ‚¬μš©λ²•μ„ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.
ν”„λ‘œνΌν‹° λ¦¬μŠ€νŠΈλŠ” μ—”νŠΈλ¦¬(entry)λ‹Ή ν•˜λ‚˜μ˜ ν‚€λ₯Ό μ§€λ‹Œ μžκ·Έλ§ˆν•œ 데이터 λ² μ΄μŠ€μ™€ κ°™μŠ΅λ‹ˆλ‹€. [레슨 10](./lesson_10.md) [p 65]μ—μ„œ μ΄λŸ¬ν•œ μ‹¬λ³Όμ˜ μ‚¬μš©λ²•μ„ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.

좜λ ₯ 이름은 λ¦¬μŠ€ν”„μ—μ„œ 심볼을 좜λ ₯ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 일반적으둜 이 이름을 λ³€κ²½ν•˜μ§€ μ•ŠλŠ”κ²Œ μ’‹μŠ΅λ‹ˆλ‹€; λ‹€λ₯Έ μ΄λ¦„μœΌλ‘œ λ³€κ²½ν•œλ‹€λ©΄, λ‹€λ₯Έ μ΄λ¦„μœΌλ‘œ 좜λ ₯된 κ²°κ³Όλ₯Ό λ¦¬μŠ€ν”„κ°€ λ‹€μ‹œ μ½μ–΄λ“€μΌλ•Œ μ›λž˜ 심볼값과 λ‹€λ₯Έ 의미둜 λ°›μ•„λ“€μ—¬ ν˜Όλž€μ„ μ•ΌκΈ°ν•  κ²ƒμž…λ‹ˆλ‹€.

Expand Down
2 changes: 1 addition & 1 deletion src/ch03/lesson_06.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
λ¦¬μŠ€ν”„λŠ” 각 λ°”μΈλ”©λ§ˆλ‹€ 이름을 λΆ€μ—¬ν•©λ‹ˆλ‹€. 만일 그렇지 μ•Šλ‹€λ©΄, ν”„λ‘œκ·Έλž¨μ€ μ–΄λ–»κ²Œ 바인딩을 μ°Έμ‘°ν•  수 μžˆμ„κΉŒμš”? κ°„λ‹¨ν•˜κ²Œ, μ–΄? μž μ‹œλ§Œμš”...


## 바인딩은 λ™μ‹œμ— λ‹€λ₯Έ 값을 κ°€μ§ˆ 수 μžˆλ‹€.
## 바인딩은 λ™μ‹œμ— λ‹€λ₯Έ 값을 κ°€μ§ˆ 수 μžˆλ‹€

쀑첩 λ°”μΈλ”©μ—μ„œ λ™μΌν•œ 이름을 κ³΅μœ ν•˜λŠ” 것은 맀우 일반적인 μΌμž…λ‹ˆλ‹€. 예λ₯Όλ“€μ–΄:

Expand Down
6 changes: 3 additions & 3 deletions src/ch03/lesson_09.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
폼은 보톡 ν•˜λ‚˜μ˜ 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€. λ¦¬μŠ€ν”„λŠ” μ—¬λŸ¬κ°œμ˜ 값을 μƒμ„±ν•˜κ±°λ‚˜ 받을 수 μžˆλŠ” 폼을 κ°–κ³  μžˆμŠ΅λ‹ˆλ‹€.


## VALUESλŠ” μ—¬λŸ¬κ°œμ˜ 값을 μƒμ„±ν•˜κ±°λ‚˜ 아무것도 μƒμ„±ν•˜μ§€ μ•ŠλŠ”λ‹€.
## VALUESλŠ” μ—¬λŸ¬κ°œμ˜ 값을 μƒμ„±ν•˜κ±°λ‚˜ 아무것도 μƒμ„±ν•˜μ§€ μ•ŠλŠ”λ‹€

`values` 폼은 0개 μ΄μƒμ˜ 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€:

Expand All @@ -29,7 +29,7 @@
`values`λŠ” ν•¨μˆ˜μ΄λ©°, λ”°λΌμ„œ 이의 인수λ₯Ό ν‰κ°€ν•©λ‹ˆλ‹€.


## λͺ‡λͺ‡ νŠΉμˆ˜ν•œ 폼은 μ—¬λŸ¬κ°œμ˜ 값을 받을 수 μžˆλ‹€.
## λͺ‡λͺ‡ νŠΉμˆ˜ν•œ 폼은 μ—¬λŸ¬κ°œμ˜ 값을 받을 수 μžˆλ‹€

μ—¬λŸ¬κ°œμ˜ 값듀을 λ‹€λ£¨κ³ μž ν•œλ‹€λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”? κ°€μž₯ 기본적인 κ²ƒλ“€λ‘œλŠ” :

Expand Down Expand Up @@ -61,7 +61,7 @@
```


## λͺ‡λͺ‡ 폼은 μ—¬λŸ¬κ°œμ˜ 값듀을 κ·ΈλŒ€λ‘œ λ„˜κΈ΄λ‹€.
## λͺ‡λͺ‡ 폼은 μ—¬λŸ¬κ°œμ˜ 값듀을 κ·ΈλŒ€λ‘œ λ„˜κΈ΄λ‹€

λͺ‡λͺ‡ 폼은 μƒˆλ‘œμš΄ 값을 μƒμ„±ν•˜λŠ” λŒ€μ‹ μ—, 본체의 λ§ˆμ§€λ§‰ 값을 λ„˜κΉ€λ‹ˆλ‹€. μ˜ˆμ œλŠ” `let`, `cond`, `defun`, `lambda`의 본체λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.

Expand Down
16 changes: 8 additions & 8 deletions src/ch03/lesson_10.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
- [원문](https://dept-info.labri.fr/~strandh/Teaching/MTP/Common/David-Lamkins/chapter03-10.html)


## λ¦¬μŠ€ν”„λŠ” λŒ€λΆ€λΆ„μ˜ 숫자λ₯Ό μ œλŒ€λ‘œ μ²˜λ¦¬ν•œλ‹€.
## λ¦¬μŠ€ν”„λŠ” λŒ€λΆ€λΆ„μ˜ 숫자λ₯Ό μ œλŒ€λ‘œ μ²˜λ¦¬ν•œλ‹€

λ­”κ°€ μ΄μƒν•œ μ†Œλ¦¬μ²˜λŸΌ λ“€λ¦½λ‹ˆλ‹€. μ»΄ν“¨ν„°λŠ” 항상 숫자둜 일을 μ²˜λ¦¬ν•˜μ§€ μ•Šλ‚˜μš”? 음, μ•„λ‹™λ‹ˆλ‹€... 보톡은 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€.

Expand Down Expand Up @@ -81,7 +81,7 @@
λ¦¬μŠ€ν”„λŠ” μ†Œμˆ˜λ₯Ό μ†Œμˆ˜μ κ³Ό ν•¨κ»˜, μ •μˆ˜μ—λŠ” μ†Œμˆ˜μ  없이 좜λ ₯ν•©λ‹ˆλ‹€.


## λ¬ΈμžλŠ” λ¦¬μŠ€ν”„κ°€ 읽고 μ“Έ 수 μžˆλŠ” 무언가λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
## λ¬ΈμžλŠ” λ¦¬μŠ€ν”„κ°€ 읽고 μ“Έ 수 μžˆλŠ” 무언가λ₯Ό μ œκ³΅ν•œλ‹€

기본적으둜 λ¦¬μŠ€ν”„ I/O(input/output)λŠ” 문자λ₯Ό μ΄μš©ν•©λ‹ˆλ‹€. `READ`와 `WRITE` ν•¨μˆ˜λŠ” 문자λ₯Ό λ¦¬μŠ€ν”„ 였브젝트둜 그리고 κ·Έ λ°˜λŒ€λ‘œ λ³€ν™˜μ‹œν‚΅λ‹ˆλ‹€. `READ-CHAR`와 `WRITE-CHAR`λŠ” 단일 문자λ₯Ό 읽고 μ”λ‹ˆλ‹€.

Expand Down Expand Up @@ -160,7 +160,7 @@ P Q R S T U V W X Y Z [ \ ] ^ _
p q r s t u v w x y z { | } ~
```

## 배열은 데이터λ₯Ό ν…Œμ΄λΈ”λ‘œ μ •λ¦¬ν•œλ‹€.
## 배열은 데이터λ₯Ό ν…Œμ΄λΈ”λ‘œ μ •λ¦¬ν•œλ‹€

μ—¬λŸ¬λΆ„μ΄ 데이터λ₯Ό 2차원, 3차원 ν˜Ήμ€ 더 λ§Žμ€ μ°¨μ›μ˜ ν…Œμ΄λΈ”λ‘œ μ—­μœΌλ €κ³ μž ν•œλ‹€λ©΄, λ°°μ—΄(array)을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€:

Expand Down Expand Up @@ -283,7 +283,7 @@ s1
```


## 심볼은 μœ λ‹ˆν¬ν•˜μ§€λ§Œ, μ—¬λŸ¬κ°œμ˜ 값을 가진닀.
## 심볼은 μœ λ‹ˆν¬ν•˜μ§€λ§Œ, μ—¬λŸ¬κ°œμ˜ 값을 가진닀

이미 [레슨 5](./lesson_05.md)μ—μ„œ 심볼은 κ³ μœ ν•œ 동일성(identity)을 μ§€λ‹Œλ‹€κ³  ν–ˆλŠ”λ°, λ°˜λ³΅ν•΄ μ„€λͺ…ν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€: 심볼은 μ² μžκ°€ 같은 λ‹€λ₯Έ 심볼과 λ™μΌν•©λ‹ˆλ‹€(이번 레슨 λλΆ€λΆ„μ—μ„œ μ’€ 더 배우게 될 νŒ¨ν‚€μ§€ 지정(designation)에 ν¬ν•¨λœ). μ΄λŠ” λ¦¬μŠ€ν”„λ‘œ ν•˜μ—¬κΈˆ ν”„λ‘œκ·Έλž¨μ΄λ‚˜ 데이터λ₯Ό 읽을 수 μžˆλ„λ‘ λ§Œλ“€μ–΄ μ£Όλ©°, μ² μžκ°€ 같은 심볼은 λͺ¨λ‘ λ™μΌν•œ μ‹¬λ³Όμž…λ‹ˆλ‹€. λ¦¬μŠ€ν”„κ°€ 이λ₯Ό μœ„ν•œ λ§€μ»€λ‹ˆμ¦˜μ„ μ œκ³΅ν•˜κΈ°μ—, 심볼 정보λ₯Ό λ‹€λ£¨λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λŠ” 것에 λŒ€ν•œ 걱정을 ν•˜λ‚˜ 덜게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

Expand Down Expand Up @@ -322,7 +322,7 @@ object-1
μ˜€λŠ˜λ‚ μ˜ λ¦¬μŠ€ν”„ ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” ν”„λ‘œνΌν‹°λŠ” 거의 μ‚¬μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•΄μ‰¬ν…Œμ΄λΈ”(Hashtables) (μ•„λž˜ μ°Έμ‘°) [p 73] , (λ‹€μŒ λ‹¨λ½μ—μ„œ 기술된) ꡬ쑰체(structures), CLOS 였브젝트(7μž₯ [p 117]κ³Ό 14μž₯ [p 157] μ°Έμ‘°)λŠ” μ‚¬μš©ν•˜κΈ° 더 νŽΈλ¦¬ν•˜λ©° λ”μš± 효율적인 λ°©μ‹μœΌλ‘œ ν”„λ‘œνΌν‹° 리슀트의 λͺ¨λ“  κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. ν˜„λŒ€ λ¦¬μŠ€ν”„μ˜ κ°œλ°œμ—μ„  ν”„λ‘œνΌν‹° 파일과 심볼을 μ •μ˜ν•˜λŠ” 폼의 파일 μœ„μΉ˜, ν•¨μˆ˜μ˜ 인자 리슀트의 μ •μ˜μ™€ 같은 (ν”„λ‘œκ·Έλž˜λ° ν™˜κ²½μ—μ„œ μœ μš©ν•œ λ„κ΅¬λ‘œ μ΄μš©ν•˜κΈ° μœ„ν•œ) νŠΉμ • 정보λ₯Ό ν”„λ‘œκ·Έλž¨μ— μ£Όμ„μœΌλ‘œμ¨ κΈ°λ‘ν•˜λŠ” λͺ©μ μœΌλ‘œ 주둜 μ‚¬μš©ν•©λ‹ˆλ‹€.


## κ΅¬μ‘°μ²΄λŠ” μ—°κ΄€λœ 데이터듀을 λͺ¨μ•„ μ €μž₯ν•  수 μžˆλ‹€.
## κ΅¬μ‘°μ²΄λŠ” μ—°κ΄€λœ 데이터듀을 λͺ¨μ•„ μ €μž₯ν•  수 μžˆλ‹€

λ¦¬μŠ€ν”„ κ΅¬μ‘°μ²΄λŠ” λͺ…λͺ…λœ 슬둯(slot)κ³Ό κ΄€κ³„λœ 데이터λ₯Ό μ €μž₯ν•˜λŠ” 였브젝트λ₯Ό μƒμ„±ν•˜λŠ” 방법을 μ œκ³΅ν•΄ μ€λ‹ˆλ‹€.

Expand Down Expand Up @@ -364,7 +364,7 @@ object-1
6μž₯[p 112]μ—μ„œ `DEFSTRUCT`의 optional κΈ°λŠ₯에 λŒ€ν•΄ μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€.


## νƒ€μž… 정보λ₯Ό λŸ°νƒ€μž„μ— μ•Œ 수 μžˆλ‹€.
## νƒ€μž… 정보λ₯Ό λŸ°νƒ€μž„μ— μ•Œ 수 μžˆλ‹€

심볼은 λŸ°νƒ€μž„μ‹œ μ–΄λ– ν•œ λ³€μˆ˜ νƒ€μž…κ³Όλ„ 연관지을 수 μžˆμŠ΅λ‹ˆλ‹€. λ¬Έμ œκ°€ μžˆλŠ” 경우, λ¦¬μŠ€ν”„λŠ” ν•΄λ‹Ή κ°’μ˜ νƒ€μž…μ„ μ§ˆμ˜ν•  수 μžˆλŠ” 방법을 μ œκ³΅ν•©λ‹ˆλ‹€:

Expand All @@ -390,7 +390,7 @@ object-1
CLOS(14μž₯ [p 157] μ°Έμ‘°)의 μ œλ„€λ¦­ ν•¨μˆ˜μ˜ λ„μž…μœΌλ‘œ, `TYPE-OF`λŠ” μ˜ˆμ „λ§ŒνΌ μ€‘μš”ν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.


## 해쉬 ν…Œμ΄λΈ”μ€ λ£©μ—…ν‚€λ‘œ λΉ λ₯΄κ²Œ 데이터에 μ ‘κ·Ό ν•  수 μžˆλ‹€.
## 해쉬 ν…Œμ΄λΈ”μ€ λ£©μ—…ν‚€λ‘œ λΉ λ₯΄κ²Œ 데이터에 μ ‘κ·Ό ν•  수 μžˆλ‹€

해쉬 ν…Œμ΄λΈ”μ€ μœ λ‹ˆν¬ ν‚€(유일 ν‚€, unique key)와 κ°’μ˜ μ—°κ²°λ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œνΌν‹° λ¦¬μŠ€νŠΈμ™„ λ‹€λ₯΄κ²Œ, 해쉬 ν…Œμ΄λΈ”μ€ 수 λ§Žμ€ ν‚€/κ°’ μŒμ— μ ν•©ν•˜λ©°, 적은 수의 μ—°κ²° 집합에 λŒ€ν•΄μ„œλŠ” κ³Όλ„ν•œ μ˜€λ²„ν—€λ“œ(overhead)κ°€ λ°œμƒν•©λ‹ˆλ‹€.

Expand Down Expand Up @@ -434,7 +434,7 @@ object-1
ν‚€λ₯Ό μ—†μ• κ³ μž ν•œλ‹€λ©΄ `(REMHASH key hash-table)`폼을 μ΄μš©ν•©λ‹ˆλ‹€. 그리고 킀에 ν•΄λ‹Ήν•˜λŠ” 값을 λ°”κΎΈκ³ μžν•œλ‹€λ©΄, ν‚€/κ°’ μŒμ„ μΆ”κ°€ν–ˆλ˜ κ²ƒμ²˜λŸΌ `GETHASH`와 `SETF`λ₯Ό μ΄μš©ν•©λ‹ˆλ‹€.


## νŒ¨ν‚€μ§€λ‘œ 이름 μΆ©λŒμ„ 방지할 수 μžˆλ‹€.
## νŒ¨ν‚€μ§€λ‘œ 이름 μΆ©λŒμ„ 방지할 수 μžˆλ‹€

ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±μ‹œ μ–΄λ €μš΄ 점 쀑 ν•˜λ‚˜λŠ” 이름 μ§“λŠ” κ²ƒμž…λ‹ˆλ‹€. ν•œνŽΈμœΌλ‘ , κΈ°μ–΅ν•˜κΈ° 쉽고 ν•΄λ‹Ή 객체의 μ—­ν• μ΄λ‚˜ λͺ©μ μ„ λ– μ˜¬λ¦΄ 수 μžˆλŠ” 이름을 μ‚¬μš©ν•˜κΈ° 원할 κ²ƒμž…λ‹ˆλ‹€. 그리고 λ‹€λ₯Έ ν•œνŽΈμœΌλ‘ , λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ˜ μ–΄λ”˜κ°€μ— 이미 μ‚¬μš©ν•œ (ν˜Ήμ€ μ‚¬μš©λ  것 같은)이름을 μ—¬λŸ¬λΆ„μ˜ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©ν•˜κ³  싢진 μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€.

Expand Down
Loading

0 comments on commit 37f4107

Please sign in to comment.