-
π‘ 1. λ€μμ λ¨μ κ΄λ μ νλμ λ³΅ν© κ΄λ μΌλ‘ μ‘°ν©νλ€. 볡μ‘ν κ΄λ λ€μ λͺ¨λ μ΄λ°μμΌλ‘ λ§λ€μλ€. 2. λμ§Έλ λ κ΄λ μ κ°μ Έμ λ λ€λ₯Έ κ΄λ μΌλ‘ μ€μ ν¨μΌλ‘μ¨ κ·Έ λμ νλμ κ΄λ μΌλ‘ ν΅ν©νμ§ μκ³ λ λ κ΄λ μ νλ²μ λ³Ό μ μκ² λ§λλ κ²μ΄λ€. κ΄κ³μ κ΄ν κ΄λ μ λͺ¨λ μ΄λ°μμΌλ‘ λ§λ€μ΄ μ§λ€. 3. μ μ§Έλ νλμ κ΄λ μ κ·Έ μ€μ μ‘΄μ¬μ μλ°νλ λ€λ₯Έ λͺ¨λ κ΄λ μΌλ‘ λΆν° λΆλ¦¬νλ κ²μ΄λ€. μ΄λ₯Ό μΆμν λΌκ³ νλ©° μΌλ°μ μΈ κ΄λ μ λͺ¨λ μ΄λ°μμΌλ‘ λ§λ€μ΄ μ§λ€. - μ‘΄ λ‘ν¬ (μΈκ°μ§μ±λ‘ )
λ€μ΄κ°λ©΄μ
μ΄ μ₯μμλ κ³μ°μ κ³Όμ μ΄λΌλ μμ΄λμ΄μ λν΄μ 곡λΆνμ΅λλ€. κ³μ°μ κ³Όμ μ μ»΄ν¨ν°μμ μ¬λ μΆμμ μ‘΄μ¬λΌκ³ νννμ΅λλ€. μ΄ κ³Όμ μ΄ μ μ°¨ μ κ° λλ©° λ°μ΄ν°λ₯Ό μ‘°μνκ² λλλ° μ΄λ¬ν ν¨ν΄μ νλ‘κ·Έλ¨μ΄λΌκ³ ν©λλ€.
μΈμκΉμλ λ¬Έμ₯μ€ νλλ "λ³Έμ§μ μΌλ‘ νλ‘κ·Έλλ¨Έλ μμ μ μ£Όλ¬Έλ€λ‘ μ»΄ν¨ν°μ μνΌμ λΆλ¬λΈλ€. λΆλ¬λΈ μνΌμ λ³Ό μλ μκ³ λ§μ§ μλ μμΌλ©° μ΄λ€ λ¬Όμ§λ‘ λ§λ κ² μλμ§λ§, λ§λ²μ¬κ° 보기μ κ·Έ μνΌμ μ‘΄μ¬νλ€. λ§λ²μ¬κ° λΆλ¬λΈ μνΌμ²λΌ κ³μ°μ κ³Όμ μ μ΄λ€ μ§μ μΈ μΌμ μννλ€. μ§λ¬Έμ λ΅νκ±°λ μνμμ λμ μ§κΈνκ³ κ³΅μ₯μμ λ‘λ΄νμ μ μ΄ν΄μ μΈμμ μν₯μ λΌμΉλ€. μ°λ¦¬κ° κ³μ°μ κ³Όμ μ λΆλ¬λ΄κΈ°μν΄ μ¬μ©νλ νλ‘κ·Έλ¨μ λ§λ²μ¬μ μ£Όλ¬Έκ³Ό λΉμ·νλ€. μ£Όλ¬Έμ νκΈ° μν μλ¨μ μ°λ¦° νλ‘κ·Έλλ° μΈμ΄λΌκ³ νλ€."
"νμ§λ§ κ³μ°μ κ³Όμ μ νλ‘κ·Έλ¨λ€μ΄ μλ°νκ³ μ ννκ² μννκΈ° λλ¬Έμ λ§λ²μ¬μ μ μ μ²λΌ μ΄λ³΄ νλ‘κ·Έλλ¨Έλ μμ μ΄ λΆλ¬λΈ κ³Όμ μ΄ μ΄λ€ μΌμ νλμ§ μ΄ν΄νκ³ μμΈ‘νλ λ°©λ²μ λ°°μμΌ νλ€. μ¬μν μ€λ₯κ° μμΌλ©΄ 볡μ‘νκ³ μμΈ‘νμ§ λͺ»ν κ²°κ³Όκ° λΉμ΄μ§ μ μλ€."
μλ°μ€ν¬λ¦½νΈ νλ‘κ·Έλλ°
μΌμμ μκ°λ€μ μμ°μ΄(νκ΅μ΄, μμ΄, μΌλ³Έμ΄, μ€κ΅μ΄)λ‘ νννκ³ , μ λ΅μ μΈ νμλ€μ μνμ νκΈ°λ²μΌλ‘ μμ νλ―, κ³μ°μ κ³Όμ μ κ΄ν μ μ°¨μ μκ°λ€μ μ¬κΈ°μλ μλ°μ€ν¬λ¦½νΈλ‘ ννν©λλ€. μ§λ μ₯μμ μ€λͺ νμ§λ§ μλ°μ€ν¬λ¦½νΈλ νλ‘κ·Έλλ° μΈμ΄μΈ μ€ν΄κ³Ό μ νμ ν΅μ¬ κΈ°λ₯μ λ¬Όλ €λ°μμ΅λλ€. μ΄νμ λ²μ(Lexically scoped), μΌκΈ ν¨μλ λμ νμ μ μ© κ°μ μλ°μ€ν¬λ¦½νΈμ κ°μ₯ κ·Όλ³Έμ μΈ μ€κ³ μμΉλ€μ μ€ν΄μμ λ¬Όλ €λ°μμ΅λλ€.
ECMAScript2015 μμ μ΄νμ μΌκΈ ν¨μλ₯Ό λλ€ ννμμ ν΅ν΄ λ¬Έλ²μ μΌλ‘ μ§μνλ λλΆμ ν¨μμ μΆμλ€μ μ§μ μ μΌλ‘ κ°κ²°νκ² μ κ·Όν μ μμΌλ©°, λμ νμ μ μ© λλΆμ μ€ν΄μ μ΄μ©ν SICPμ μ΅λν λΉμ·νκ² μ€λͺ ν μ μκ² λλ€κ³ μ€λͺ ν©λλ€. (μ΄ μ± μμλ ECMAScript 2015λ₯Ό κΈ°λ³Έμ μΌλ‘ μ μ©ν©λλ€.)
1.1 νλ‘κ·Έλλ° κΈ°λ³Έ μμ
νλ‘κ·Έλλ° μΈμ΄λ μ°λ¦¬κ° κ³Όμ μ κ΄ν μκ°μ μ‘°μ§ν νλ νλ‘λ μμ©ν©λλ€. νλ‘κ·Έλλ° μΈμ΄λ₯Ό κ³ μ°°ν λ λ¨μν μμ΄λμ΄λ€μ μ‘°ν©ν΄μ μ’ λ 볡μ‘ν μμ΄λμ΄λ₯Ό λ§λλλ° μ¬μ©νλ μλ¨μ΄λΌλ μ μ μκ°ν΄μΌ ν©λλ€. λͺ¨λ μΈμ΄λ μ΄λ₯Ό μν΄ μΈκ°μ§ 맀컀λμ¦μ μ 곡ν΄μΌ ν©λλ€.
- μμ ννμ - μΈμ΄μ κ΄λ ¨λ κ°μ₯ λ¨μν κ°μ²΄(entity)λ₯Ό λνλΈλ€.
- μ‘°ν© μλ¨ - λ¨μν μμλ€λ‘λΆν° 볡ν©μ μΈ μμλ₯Ό λ§λλλ° μ°μΈλ€.
- μΆμν μλ¨ - 볡ν©μ μΈ μμλ€μ μ΄λ¦μ λΆμ¬μ νλμ λ¨μλ‘ λ€λ£¨λλ° μ°μΈλ€.
νλ‘κ·Έλλ°μμ λ€λ£¨λ μμλ ν¬κ² ν¨μμ λ°μ΄ν°λ‘ λλλλ°, μ’μ μΈμ΄λ λ°λμ μμ λ°μ΄ν°μ μμ ν¨μλ₯Ό μμ νλ κΈ°λ₯κ³Ό κ·Έλ° ν¨μλ€κ³Ό λ°μ΄ν°λ₯Ό μ‘°ν©νκ³ μΆμνλ μλ¨λ μ κ³΅μ΄ λμ΄μΌ ν©λλ€.
1.1.1 ννμ
μ΄ μ± μμλ νλ‘κ·Έλλ° ν μ€νΈλ₯Ό μν΄ λνν λ°©μμ μΈν°ν리ν°λ₯Ό μ¬μ©ν κ²μ κΆμ₯νκ³ μμ΅λλ€. μΈν°ν리ν°λ₯Ό ν΅ν΄ ν둬ννΈμ νλμ λ¬Έμ₯(statement)λ₯Ό μ λ ₯νμ¬ μΈν°ν리ν°κ° λ¬Έμ₯μ νκ°(evaluation) νμ¬ κ²°κ³Όλ₯Ό νλ©΄μ νμν΄μ€λλ€. nodejs λ₯Ό μ΄μ©νμ¬ μ½μ νκ²½μμ λνν μΈν°ν리ν°λ₯Ό μ¬μ©νκ±°λ main.js λ₯Ό λ§λ€μ΄μ μ€νμμΌλ μ’μ΅λλ€.
μλ°μ€ν¬λ¦½νΈμ μλμ κ°μ λͺ λ Ήμ λ΄λ¦¬λ©΄
486;
μΈν°ν리ν°λ μλμ κ°μ νκ°λ₯Ό μΆλ ₯ν©λλ€.
486
μλ₯Ό λνλ΄λ ννμλ€μ μ°μ°μλ‘λ μ‘°ν©ν μ μμ΅λλ€. κ·Έ κ²°κ³Όλ μ°μ°μλ€μ ν΄λΉνλ μμ ν¨μλ₯Ό ν΄λΉ μλ€μ μ μ©νλ λ³΅ν© ννμμ λλ€.
137 * 349; 486 1000 - 334; 666 5 * 99; 495 10 / 4; 2.5 2.7 + 10; 12.7
μ΄λ κ² λ€λ₯Έ ννμμ ꡬμ±μμλ‘ λ΄κ³ μλ ννμμ μ‘°ν©μ΄λΌκ³ νλ©° κ°μ΄λ° μ°μ°μκ° μκ³ μΌμͺ½ μ€λ₯Έμͺ½μ νΌμ°μ°μ ννμμ΄ μλ ννμ μ‘°ν©μ μ°μ°μ μ‘°ν©μ΄λΌκ³ λΆλ¦ λλ€. μ°μ°μ μ‘°ν©μ κ°μ μ°μ°μλ‘ μ§μ λ ν¨μλ₯Ό μΈμλ€, μ¦ νΌμ°μ°μ κ°λ€μ μ μ©ν΄μ ꡬν μ μμ΅λλ€.
μ°μ°μλ₯Ό λ νΌμ°μ°μ μ¬μ΄μ λ°°μΉνλκ²μ μ€μ νκΈ°λ²μ΄λΌκ³ ν©λλ€.
(3 * 5) + (10 - 6); 19
μνμ²λΌ μλ°μ€ν¬λ¦½νΈλ μ°μ° μμμ νΌλμ νΌνκΈ° μν΄ μκ΄νΈλ‘ μ°μ°μ μ‘°ν©μ λ¬Άμμ μμ΅λλ€. μκ΄νΈλ₯Ό μλ΅ν΄λ μλ°μ€ν¬λ¦½νΈ μΈν°ν리ν°λ ν΅μμ μΈ λ°©λ²μ λ°λΌ μ°μ°μμλ₯Ό μ ν©λλ€. κ³±μ κ³Ό λλμ κ·Έλ¦¬κ³ λ§μ κ³Ό λΊΌμ μμΌλ‘μ. μλ₯Ό λ€μ΄ λ€μμ
3 * 5 + 10 / 2
λ€μμ ν΄λΉν©λλ€.
(3 * 5) + (10 / 2);
μ΄λ° κ΄λ‘λ₯Ό μ°μ°μκ° μΌμͺ½ κ²°ν©λλ€κ³ ν©λλ€. μλ°μ€ν¬λ¦½νΈ μΈν°ν리ν°κ° νκ°ν μ μλ ννμμ 볡μ‘λλ μ νμ΄ μμ§λ§ μ¬λμ΄λΌλ©΄ μ΄λ° μκ° ν·κ°λ¦΄μ μμ΅λλ€.
3 * 2 * (3 - 5 + 4) + 27 / 6 * 10
μλ°μ€ν¬λ¦½νΈλ μ΄κ²μ 57λ‘ νκ°νκ² μ§λ§ λ€μμ²λΌ ννμμ μ£Όμ ꡬμ±μμλ₯Ό μκ°μ μΌλ‘ λͺ ννκ² κ΅¬λΆν΄μ νκΈ°νλ€λ©΄ λ ν·κ°λ¦΄ μ μμ΅λλ€.
3 * 2 * (3 - 5 + 4) + 27 / 6 * 10;
μ΄λ κ² μΈν°ν리ν°μλ 볡μ‘ν λ¬Έμ₯μ΄ μ£Όμ΄μ Έλ νλμ μ¬μ΄ν΄λ‘ λμνλ©° μΈν°ν리ν°λ μ¬μ©μκ° μ λ ₯ν λ¬Έμ₯μ λ¦κ³ , νκ°νμ¬ μΆλ ₯ν΄μ£Όλλ° μ΄λ¬ν μ£ΌκΈ°λ₯Ό REPL(read-evaluate-print loop) λΌκ³ λΆλ¦ λλ€.
1.1.2 μ΄λ¦ λΆμ΄κΈ°μ νκ²½
κ³μ°μ κ°μ²΄μ μ΄λ¦μ λΆμ¬μ μ΄λ¦μΌλ‘ κ°μ²΄λ₯Ό μ§μΉνλ μλ¨μ μΈμ΄μ νμ κΈ°λ₯μ λλ€. μ°λ¦¬κ° μ μΈμ΄λΌκ³ λΆλ¬μλ λ³μμ μ μΈμ μ΄ μ± μμλ κ³μ°μ κ°μ²΄μ μ΄λ¦μ λΆμ΄λ μλ¨ μ¦ μΆμμ μλ¨μΌλ‘ μ€λͺ νκ³ μμ΅λλ€.
const size = 2;
μ΄ λ¬Έμ₯μ λν΄ μΈν°ν리ν°λ 2λΌλ κ°μ sizeλΌλ μ΄λ¦μ μ°κ΄ μν΅λλ€. μ΄λ¦μ΄ 2λΌλ μκ° μ°κ΄λλ©΄ κ·ΈλλΆν° κ°2λ₯Ό sizeλΌλ μ΄λ¦μΌλ‘ μ§μΉν μ μκ² λ©λλ€. λ€λ₯Έ μλ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
const pi = 3.14159; const radius = 10; pi = radius * radius; 314.159 const circumference = 2 * pi * radius; circumference; 62.8318
볡ν©μ μΈ μ°μ° κ²°κ³Όλ₯Ό κ°λ¨ν μ΄λ¦μΈ circumferenceλ‘ μ§μΉν μ μλ€λ μ μμ μμμ μ μΈμ κ°μ₯ λ¨μν μΆμν μλ¨μ΄λΌκ³ ν μ μμ΅λλ€. μΌλ°μ μΌλ‘ κ³μ°μ κ°μ²΄λ κ·Έ κ΅¬μ‘°κ° λ³΅μ‘ν μ μλλ° λ³΅μ‘ν ꡬ쑰μ μΈλΆ μ¬νμ κΈ°μ΅ν΄ λκ³ κ°μ²΄λ₯Ό μ¬μ©ν λλ§λ€ κ·Έ ꡬ쑰λ₯Ό κ±°λ λͺ μνλκ²μ λΆνΈνκΈ° λλ¬Έμ μΈν°ν리ν°λ₯Ό μ΄μ©νμ¬ μ΄λ¦-κ°μ²΄ κ° μνΈμμ©μ ν΅ν΄ μ μ§μ μΌλ‘ λ§λ€μ΄ λκ° μ μμΌλ―λ‘ λ¨κ³μ νλ‘κ·Έλλ°μ΄ νΈν΄μ§λλ€.
μ΄λ¦κ³Ό κ°μ μ°κ΄ μν€κ³ μ΄λ¦μΌλ‘λΆν° κ°μ μ‘°νν μ μμΌλ €λ©΄ μΈν°ν리ν°λ λ°λμ μ΄λ¦-κ°μ²΄ μμ μ μ₯νλ λ©λͺ¨λ¦¬ 곡κ°μ κ°κ² λλλ° μ΄λ° λ©λͺ¨λ¦¬ 곡κ°μ νλ‘κ·Έλ¨ νκ²½(program environment) λΌκ³ λΆλ¦ λλ€.
1.1.3 μ°μ°μ μ‘°ν©μ νκ°
μ΄λ²μ₯μ λͺ©νμ€ νλλ μ μ°¨μ μ¬κ³ μ κ΄ν λ Όμ μ μ ꡬλΆνλκ², μλ₯Ό λ€μ΄ μ°μ°μ μ‘°ν©μ νκ°ν λ ν΄μκΈ°κ° λ°λ₯΄λ λ€μκ³Ό κ°μ μ μ°¨λ₯Ό λ³΄κ² μ΅λλ€.
- μ£Όμ΄μ§ μ°μ°μ μ‘°ν©μ νκ°νκΈ° μν΄ λ€μμ μννλ€.
1. μ‘°ν©μ νΌμ°μ°μ ννμλ€μ νκ°νλ€.
2. μ°μ°μκ° λνλ΄λ ν¨μλ₯Ό μΈμλ€μ μ μ©νλ€.
λ¨κ³ 1μ μ£Όμ΄μ§ μ‘°ν©μ νκ° κ³Όμ μ μλ£νκΈ° μν΄μλ λ¨Όμ μ‘°ν©μ κ° νΌμ°μ°μλ₯Ό νκ°ν΄μΌ ν¨μ μ΄μΌκΈ° ν΄μ€λλ€. μ΄λ κ·μΉμ ν λ¨κ³μμ κ·μΉ μμ μ μνν΄μΌ ν¨μ λ»νλ©° μ΄ νκ° κ·μΉμ μ¬κ·μ μ΄λΌκ³ ν μ μμ΅λλ€.
μ¬κ·λΌλ κ°λ λλΆμ κΉμ μ€μ²λ μ‘°ν©μ νκ° κ·μΉλ κ°κ²°νκ² ννν μ μμ΅λλ€. μ¬κ·κ° μλ€λ©΄ νκ° κ³Όμ μ 볡μ‘νκ² μμ ν΄μΌ νμ΄μΌ νμ΅λλ€.
(2 + 4 * 6) * (3 + 12);
μ΄ λ³΅ν© μ°μ°μ μ‘°ν©μ νκ°νλ €λ©΄ μλ‘ λ€λ₯Έ λ€κ°μ§ μ‘°ν©μ νκ° κ·μΉμ μ μ©ν΄μΌ ν©λλ€. κ·Έ κ³Όμ μ νλμ νΈλ¦¬ ννλ‘ μκ°ν ν μ μλλ°. κ° λ Έλλ νλμ μ‘°ν©μ λνλ΄κ³ λ Έλμμ λ»μ΄ λμ¨ κ°λλ€μ κ·Έ μ‘°ν©μ μ°μ°μμ νΌμ°μ°μλ€λ‘ μ΄μ΄μ§λλ€. μ΄λ¬ν νΈλ¦¬ ννμμ μ‘°ν©μ νκ° κ³Όμ μ νΈλ¦¬μ λ§λ¨ λ Έλμμ μΆλ°ν΄μ νΌμ°μ°μ κ°λ€μ ν΄λΉ μ°μ°μμ λ°λΌ κ²°ν©ν΄μ μ μ°¨ μμͺ½ λ Έλλ‘ μ¬λ €λ³΄λ΄λ κ³Όμ μ ν΄λΉν©λλ€. μΌλ°μ μΌλ‘ μ¬κ·λ μ΄μ²λΌ νΈλ¦¬ ννμ μκ³ κ΅¬μ‘°λ‘ μ‘°μ§νλ κ°μ²΄λ€μ λ€λ£¨λλ° λλ¨ν κ°λ ₯ν κΈ°λ²μ΄μμ. μ΄λ₯Ό νΈλ¦¬ λμ°μ΄λΌκ³ λΆλ¦ λλ€.
μ€μν μ μ, λ¨κ³ 1μ μ¬κ·μ μΌλ‘ κ±°λ μ μ©νλ€ λ³΄λ©΄ μ‘°ν©μ΄ μλλΌ μμ ννμμ νκ°ν΄μΌνλ μ§μ μ λλ¬νλ€λ μ μ λλ€. ννμ νκ°μλ λ€μκ³Ό κ°μ κ·μΉλ€μ΄ μ μ©λ©λλ€.
- μμΉμ κ°μ ν΄λΉ μ«μλ€μ΄ λνλ΄λ λ°λ‘ κ·Έ κ°μ΄λ€.
- μ΄λ¦μ κ°μ νμ¬ νκ²½μμ κ·Έ μ΄λ¦μ μ°κ΄λ κ°μ²΄μ΄λ€.
μ¬λ¦¬μ μ€μν건 ννμ μμ μ΄λ¦μ΄ λ»νλ λ°λ₯Ό νκ²½μ΄ κ²°μ νλ€λ μ μ λλ€. μλ°μ€ν¬λ¦½νΈ κ°μ λνμ μΈμ΄μμ x + 1κ°μ ννμμ κ°μ μ΄μΌκΈ° νλ €λ©΄ xλΌλ μ΄λ¦μ μλ―Έλ₯Ό μ 곡νλ νκ²½μ κ΄ν μ λ³΄κ° κΌ νμνκ² λ©λλ€. νκ°κ° μΌμ΄λλ λ¬Έλ§₯μ μ 곡νλ νκ²½μ΄λΌλ μΌλ°μ κ°λ μ νλ‘κ·Έλ¨μ μ€νμ μ΄ν΄ν λ μ€μν μν μ ν©λλ€.
μ£Όμν μ μ νκ° κ·μΉμ΄ μ μΈμλ μ μ©λμ§ μλλ€λ μ μ λλ€. μλ₯Ό λ€μ΄ const x = 3 μ νκ°ν λ μΈν°ν리ν°κ° λ μΈμμ μλ μ°μ°μ(=)λ₯Ό μ μ©νλκ²μ΄ μλλ©° κ°λ¨ν λ§ν΄ const x = 3μ μ‘°ν©μ΄ μλλλ€. constλ μλ°μ€ν¬λ¦½νΈ ν€μλμ΄λ©° ν€μλλ₯Ό ν¬ν¨ν λ¬Έμ₯μ ꡬ문νμ΄λΌκ³ νλλ° κ΅¬λ¬Έν λ§λ€ κ³ μ μ νκ° κ·μΉμ΄ μμ΅λλ€. λ€μν μ’ λ₯μ λ¬Έμ₯λ€κ³Ό ννμλ€μ νλ‘κ·Έλλ° μΈμ΄μ κ΅¬λ¬Έλ‘ μ νμ±ν©λλ€.
1.1.4 λ³΅ν© ν¨μ
μμ μλ°μ€ν¬λ¦½νΈ νλ‘κ·Έλλ°μ μμ μμλ₯Ό μ΄ν΄ 보μλλ° μ 리λ₯Ό ν΄λ³΄μλ©΄
- μμΉμ μ°μ μ°μ°μ μμ λ°μ΄ν°μ μμ ν¨μμ ν΄λΉνλ€.
- μ‘°ν©μ μ€μ²©μ μ°μ°λ€μ μ‘°ν©νλ μλ¨μ μ 곡νλ€.
- μ΄λ¦κ³Ό κ°μ μ°κ΄μν€λ μμ μ μΈμ μ νμ μ΄λλ§ μΆμνμ μλ¨μ μ 곡νλ€.
μ΄λ²μλ ν¨μ μ μΈμ μ΄ν΄λ³΄κ² μ΅λλ€. λ³΅ν© μ°μ°μ μ΄λ¦μ λΆμ΄κ³ κ·Έ μ°μ°μ νλμ λ¨μλ‘ μ§μΉνκ² ν΄μ£Όλ ν¨μ μ μΈμ μμ μΈμΈλ³΄λ€ ν¨μ¬ κ°λ ₯ν μΆμν κΈ°λ²μ λλ€.
μ κ³±μ κ΄ν ν¨μλ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
function square(x) { return x * x; }
μ΄κ²μ squareλΌλ μ΄λ¦μ΄ λΆμ νλμ λ³΅ν© ν¨μ μ λλ€. μ΄κ±Έ νλμ ν¨μ μ μ© ννμμμ μ¬μ©ν μ μμ΅λλ€.
square(21); 441
ν¨μ μ μ©μ ννμλ€λ‘λΆν° λ ν° ννμμ λ§λλ λ λ€λ₯Έ μ’ λ₯μ μ‘°ν©γ λΉλλ€. (λ€λ₯Έ νλλ μ°μ°μ μ‘°ν©μ λλ€.) ν¨μ μ μ©μ νκ°ν λ μΈν°ν리ν°λ μ°μ°μ μ‘°ν©μ νκ° μ μ°¨μ μλΉν λΉμ·ν μ μ°¨λ₯Ό λ°λ¦ λλ€.
- ν¨μμ μ μ©μ νκ°νλ €λ©΄ λ€μμ μννλ€.
1. μ μ©μ λΆλΆμλ€, μ¦ ν¨μ ννμκ³Ό μΈμ ννμλ€μ κ°κ° νκ°νλ€.
2. ν¨μ, μ¦ ν¨μ ννμμ κ°μ μΈμ ννμ κ°λ€μ μ μ©νλ€.
squre(2 + 5); 49
μμ κ°μ κ²½μ° μΈμ ννμμ νλμ λ³΅ν© ννμμΈ μ°μ°μ μ‘°ν© 2 + 5 μ λλ€.
square(square(3)); 81
ν¨μ μ μ© ννμμ λ΄μ ν¨μμ μ μ© μΈμ ννμμΌλ‘ μ¬μ©μ΄ κ°λ₯ν©λλ€. squareλ₯Ό λ€λ₯Έ ν¨μλ₯Ό μ μνλ κ΅¬μΆ μμλ‘λ μ¬μ©μ΄ κ°λ₯ν©λλ€.
square(x) + square(x)
μλλ μ£Όμ΄μ§ λ μμ μ κ³±μ ν©μ μ°μΆνλ ν¨μμ λλ€.
function sum_of_squares(x, y) { return square(x) + square(y); } sum_of_squares(3, 4); 25
λ λμκ°μ sum_of_squares μ체λ₯Ό λ λ€λ₯Έ ν¨μμ κ΅¬μΆ μμλ‘ μ¬μ©λ μ μμ΅λλ€.
function f(a) { return sum_of_square(a + 1, a * 2); } f(5); 136
μ΄λ° λ³΅ν© ν¨μλ€ μΈμ λͺ¨λ μλ°μ€ν¬λ¦½νΈ νκ²½μ μΈν°νλ¦¬ν° μ체μ λ΄μ₯λ, λλ νμ€ λΌμ΄λΈλ¬λ¦¬λ‘λΆν° μ μ¬ν μμν¨μλ€λ μ 곡νκ³ μμ΅λλ€.
'Tech' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μλ°μ€ν¬λ¦½νΈλ‘ λ°°μ°λ SICP - ν¨μλ₯Ό μ΄μ©ν μΆμν(2) (0) 2023.05.25 μλ°μ€ν¬λ¦½νΈλ‘ λ°°μ°λ SICP - λ€μ΄κ°λ©° (0) 2023.05.23 RCA, XLR, TS, TLS? λΌμΈμ λν΄μ μμ보μ (0) 2023.05.18 λμμΈ ν¨ν΄, νμ¬λ(Facade pattern) (0) 2023.05.18 λμμΈ ν¨ν΄, μ±κΈν€(Singleton pattern) (0) 2023.05.18 λκΈ