포슀트

πŸŒ’ Functional Programming

πŸŒ’ ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„


πŸ’« Functional Programming


  • 과정을 해석할 ν•„μš” 없이, μžˆλŠ” μ½”λ“œμ˜ λͺ©μ μ„ λͺ…ν™•ν•˜κ²Œ μ•Œ 수 μžˆλŠ”
  • 순수 ν•¨μˆ˜μ™€ λΆˆλ³€μ„±μ„ κΈ°λ°˜μœΌλ‘œν•œ μ„ μ–Έν˜• ν”„λ‘œκ·Έλž˜λ°?
  • κ³ μ°¨ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° μŠ€νƒ€μΌλ‘œ 데이터λ₯Ό 처리?
  • μ½”λ“œμ˜ 가독성을 λ†’νžŒλ‹€?

🫧 순수 ν•¨μˆ˜ (λ…λ¦½μ μœΌλ‘œ μˆ˜ν–‰λ˜λŠ”)

  • λ™μΌν•œ μž…λ ₯에 λŒ€ν•΄ 항상 λ™μΌν•œ 좜λ ₯을 λ°˜ν™˜ν•œλ‹€
  • ν•¨μˆ˜ μ™ΈλΆ€μ˜ μƒνƒœλ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€
  • μ‚¬μ΄λ“œ μ΄νŽ™νŠΈ (λΆ€μž‘μš©)이 μ—†λ‹€

🫧 λΆˆλ³€μ„±

  • λ°μ΄ν„°λŠ” λ³€κ²½λ˜μ§€ μ•ŠλŠ”λ‹€
  • 데이터 변경이 ν•„μš”ν•˜λ©΄ μƒˆλ‘œμš΄ 데이터λ₯Ό μƒμ„±ν•œλ‹€
  • -> μ΄λŠ” μƒνƒœ λ³€ν™”λ‘œ μΈν•œ 버그λ₯Ό μ€„μ΄λŠ” 데 도움이 λœλ‹€

🫧 κ³ μ°¨ν•¨μˆ˜

  • ν•¨μˆ˜λ₯Ό 인자둜 λ°›κ±°λ‚˜ ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜
  • i.e. Where Select Sum

🫧 일급 객체 (λ‘œμ„œμ˜ ν•¨μˆ˜)

  • ν•¨μˆ˜κ°€ λ³€μˆ˜μ— 할당될 수 있고(델리게이트),
  • λ‹€λ₯Έ ν•¨μˆ˜μ˜ 인자둜 μ „λ‹¬λ˜κ±°λ‚˜
  • λ°˜ν™˜κ°’μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€.
  • 데이터 ꡬ쑰에 μ €μž₯ν•  수 μžˆλ‹€ (객체λ₯Ό λ°°μ—΄, 리슀트, λ§΅λ“±μ˜ 데이터 ꡬ쑰에 μ €μž₯ν•  수 μžˆλ‹€)

🫧 μ„ μ–Έν˜• ν”„λ‘œκ·Έλž˜λ°

  • 무엇을 ν•  것인지에 μ§‘μ€‘ν•˜λ©°, μ–΄λ–»κ²Œ ν•  κ²ƒμΈμ§€λŠ” λͺ…μ‹œν•˜μ§€ μ•ŠλŠ”λ‹€
  • Against λͺ…λ Ήν˜• ν”„λ‘œκ·Έλž˜λ°

πŸ’« μ°Έκ³ 


이 κΈ°μ‚¬λŠ” μ €μž‘κΆŒμžμ˜ CC BY 4.0 λΌμ΄μ„ΌμŠ€λ₯Ό λ”°λ¦…λ‹ˆλ‹€.