μ¬νκΉμ§ μ 리Β
μ¬λμ΄ μ΄λ ν μμ μ νλ‘κ·Έλλ° ν λμλ λ°μ΄ν°λ₯Ό νλ‘μμ Έλ₯Ό μ΄μ©ν΄ κ°κ³΅μ νλ€.Β
νλ‘κ·Έλλ° μΈμ΄λ μ¬λμ μμ μ νννκΈ° μν΄μ λ°μ΄ν°λ₯Ό νννκ³ νλ‘μμ Έλ₯Ό νννλ λꡬμ΄λ€.Β Β
κ·Έλ¬λ―λ‘ νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ΄ν΄νκΈ° μν΄μλ κ·Έ μΈμ΄κ° λ°μ΄ν°μ νλ‘μμ Έλ₯Ό μ΄λ»κ² νννλμ§λ₯Ό μ΄ν΄ν΄μΌ νλ€.Β
μ²μμ μΈμ΄μ κ°μ₯ κΈ°λ³Έμ μΈ ν리미ν°λΈ λ°μ΄ν°μ νλ‘μμ Έλ₯Ό 곡λΆνκ³ Β
λ€μμ κ·Έ κΈ°λ³Έμ μΈ κ°λ μ μ΄λ»κ² μΆμν νλμ§λ₯Ό 곡λΆνκ³ ,Β
κ·Έ κ°μ₯ κ°λ¨ν μΆμνμ κ°λ λ€λ‘ μ΄λ»κ² κ°λ¨ν μκ³ λ¦¬μ¦μ νννλμ§ κ³΅λΆνκ³ Β
κ·Έ ννν μκ³ λ¦¬μ¦λ€μ μ΄λ»κ² νκ°νλμ§ κ³΅λΆνλ€.Β
μ§κΈμ λ κ³ λμ μΆμνλ₯Ό μ΄λ»κ² νλμ§, μΆμνν νλ‘μμ Έλ₯Ό λ μΆμννλ κ³ μ°¨ νλ‘μμ Έμ λν΄ κ³΅λΆμ€.Β
μ λ²ν μμλ μΈμλ‘μμ νλ‘μμ Έλ₯Ό λ°°μ λλ°, μ€λμ λλ€λ₯Ό ν΅ν΄ νλ‘μμ Έλ₯Ό λ§λλ λ²μ λ°°μ΄λ€.Β
------------------------------------------------------------------------------
νλ‘μμ Έλ₯Ό λ§λλ λ°©λ²μΌλ‘ μ¬νκΉμ§λ define μ ν΅ν΄ μ μλ₯Ό ν΄μλ€.Β
μλ₯Ό λ€μ΄μ μΈμ κ³±μ κ²½μ°Β
(define (cube x) (* x x x))
μ΄λ°μμΌλ‘ defineμ μ¬μ©ν΄μ νλ‘μμ Έλ₯Ό λ§λ€μλλ°, λλ€λ μ¬κΈ°μμ μ΄λ¦μ λ£μ§ μκ³ λ°λ‘ νλ‘μμ Έλ₯Ό μ μνλκ² κ°λ₯νλ€.Β
(lambda (x) (* x x x))
μ΄λ°μμΌλ‘ λλ€ λ€μ νλΌλ©ν°λ₯Ό λ£κ³ κ·Έ λ€ κ°λ‘ μμ 보λλ₯Ό μ μνλκ².Β
μ΄λ κ² λλ€λ₯Ό μ°κ²λλ©΄ defineμΌλ‘ μ΄λ¦μ λΆμΌ νμκ° μλ λ§€μ° κ°λ¨ν μμμ΄λ νλ²λ§ μ°λ μλ€μ λλ€λ‘ μ μν΄μ μ¬μ©νλκ² νΈν λκ° μλ€.Β
μλ₯Ό λ€μ΄μ λ€μκ³Ό κ°μ μμ μκ°ν΄λ³΄μ.Β
μ΄ μμ μ΄λ κ²λ ννμ΄ κ°λ₯νλ€.Β
μ΄κ²μ define λ§μ μ΄μ©ν΄ λνλ΄λ©΄ μ΄λ° μ½λκ° λλ€.Β
μ¬κΈ°μ f-helper λΌλ μ΄λ¦μ νΉλ³ν λ»λ κ°μ§κ³ μμ§ μμΌλ―λ‘ lambdaλ‘ λ체λ μ μλ€.Β
κ·Έλ¬λ©΄ μ΄λ°μμΌλ‘ μ½λλ₯Ό μΈ μ μλ€.Β
define λ§μ μ¬μ©νμ λμ λΉκ΅νμ λ, λ§μ΄ κΉλν΄μ§κ²μ νμΈ κ°λ₯νλ€.
μ‘°κΈ λ μμΈν μμ μ½λλ₯Ό ν΄μ€νλ©΄ μλμ κ·Έλ¦Όκ³Ό κ°λ€.Β
μ΄λ¬ν λ°©λ²μ΄ λ무λ μ μ©νκΈ° λλ¬Έμ lisp μμλ let μ΄λΌλ νΉλ³ formμ μ 곡νκ³ μλ€.Β
let μ μ¬μ©νλ©΄ λμ±λ μκΈ° μ½κ² μ½λ μμ±μ΄ κ°λ₯νλ€.Β
μ¬κΈ°μ let μ μλμ κ°μ ννμ λ°λ₯Έλ€.Β
μμ΄λ‘ νννμλ©΄ μ΄λ λ€.Β
μ΄ let μ΄λκ²μ λ¨μνΒ lambdaμ μλμ μ½λλ₯Ό νΉλ³ν νΌμΌλ‘ νννκ². λ무λ μ μ©ν ννμ΄κΈ° λλ¬Έμ λ°λ‘ νΌμ μ§μ ν΄μ€λ―.Β
μμ let μ defineμΌλ‘ λ°κΏ μ¨λ³΄λ©΄ μ΄λ° μ½λκ° λλ€.Β
νμ§λ§ μ΄λ° κ²½μ°λ letμ μ°λκ²μ΄ λμ± κΉλνκ² μΈ μ μλ€λκ±°.Β
μ΄λ κ² μ€λμ lambdaκ° λ¬΄μμΈμ§, let μ΄ λ¬΄μμΈμ§ μμ보μλ€.Β
κ°λ¨νꡬμ¬Β
ν΄λΉ λκΈμ μμ λμμ΅λλ€.
lispλΌλ μμν μΈμ΄λ‘ μ¨μ μ΄λ ΅κ² 보μ΄λκ±° λΏμ΄κ³ μ§μΈμ§ λ³κ±° μμ. λλ€λ 무μμΈμ§ μ μΌ κΈ°λ³Έμ μΈ μ μλ§ μ¨λμκ±°μ. μλ§ λκ°μ λ΄μ©μ C#μΌλ‘ 보면 λ°λ‘ μ΄ν΄ν κ±Έ
"κ³ λ"μ μΆμν???