ν’€μŠ€νƒ μ›ΉπŸŒ 개발자 지망생 πŸ§‘πŸ½β€πŸ’»
βž• 인곡지λŠ₯ 관심 πŸ€–


Categories


Recent views

  • 1
  • 2
  • 3
  • 4
  • 5

OSSU PL-A Section 3

  1. μš©μ–΄ μ„€λͺ…
  2. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°(functional programming)의 νŠΉμ§•
    πŸ—£οΈ quote

    좜처 κ°•μ˜ Programming Languages, Part A, μ›Œμ‹±ν„΄ λŒ€ν•™κ΅

    OSSU PL-A Section 3

    μš©μ–΄ μ„€λͺ…

    μ•„λž˜ 셋은 λ§Žμ€ μ‚¬λžŒλ“€μ΄ μ„œλ‘œ ν˜Όλ™ν•˜λŠ” μš©μ–΄λ“€μ΄λ‹€.

    일급 ν•¨μˆ˜(first-class function)

    κ°’(value) 처럼 κ³„μ‚°λ˜κ±°λ‚˜, μ „λ‹¬λ˜κ±°λ‚˜ λ¦¬ν„΄λ˜κ±°λ‚˜ μ €μž₯ 등이 κ°€λŠ₯ν•œ ν•¨μˆ˜.

    ν•¨μˆ˜ ν΄λ‘œμ €(function closures)

    • ν•¨μˆ˜ λ‚΄μ—μ„œ μ™ΈλΆ€μ—μ„œ μ •μ˜λœ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜.
    • ν•¨μˆ˜κ°€ μ •μ˜λ˜λŠ” μˆœκ°„μ— μ™ΈλΆ€μ˜ μ „μ—­ λ³€μˆ˜ 값을 κ³ μ •ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 경우λ₯Ό λ ‰μ‹œμ»¬ μŠ€μ½”ν”„(Lexical Scope) ν˜Ήμ€ 정적 λ²”μœ„(static scope)라고 ν•œλ‹€.
      • 이λ₯Ό 톡해, μž…λ ₯에 λŒ€ν•œ μΌμ •ν•œ 좜λ ₯이 보μž₯되고, λ³€μˆ˜μ˜ νƒ€μž… λ³€κ²½ 등에 μ˜ν•œ 였λ₯˜κ°€ μ—†λ‹€.
      • λ ‰μ‹œμ»¬ μŠ€μ½”ν”„μ˜ λ°˜λŒ€λŠ” 동적 μŠ€μ½”ν”„(dynamic scope) 라고 ν•œλ‹€.
    • ν•¨μˆ˜ μ„ μ–Έ + λ ‰μ‹œμ»¬ μŠ€μ½”ν”„ = ν΄λ‘œμ € 라고 ν•œλ‹€.

    ν΄λ‘œμ € 덕뢄에 Currying, ν•¨μˆ˜ μ‘°ν•© 등이 κ°€λŠ₯ν•˜λ‹€.

    κ³ μ°¨ ν•¨μˆ˜(higher-order function)

    λ‹€λ₯Έ ν•¨μˆ˜λ₯Ό 인수둜 λ°›κ±°λ‚˜ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜

    이듀을 μ΄μš©ν•΄ 가독성과 μž¬μ‚¬μš©μ„± 쒋은 μ½”λ“œλ₯Ό λ§Œλ“€ 수 μžˆλ‹€. μ˜ˆμ‹œ : map, filter

    ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°(functional programming)의 νŠΉμ§•

    • λ³€κ²½κ°€λŠ₯ν•œ(mutable) 데이터λ₯Ό 거의 ν˜Ήμ€ μ „ν˜€ μ‚¬μš©ν•˜μ§€ μ•ŠμŒ
    • ν•¨μˆ˜λ₯Ό κ°’μ²˜λŸΌ λ‹€λ£° 수 있음(μœ„ μš©μ–΄ μ„€λͺ…)
    • μž¬κ·€μ™€ μž¬κ·€ ꡬ쑰 데이터λ₯Ό 자주 μ‚¬μš©ν•¨
    • 전톡적인 μˆ˜ν•™μ μΈ 문법과 μŠ€νƒ€μΌλ‘œ ν•¨μˆ˜λ₯Ό μ΄μš©ν•¨
    • laziness 같이 기쑴의 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” idiom(κ΄€μš©κ΅¬)을 μ‚¬μš©