ํฌ์ŠคํŠธ

Functional Programming

Functional Programming

๐ŸŒ’ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„


๐Ÿ’ซ Functional Programming | ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ


  • ๊ณผ์ •์„ ํ•ด์„ํ•  ํ•„์š” ์—†์ด, ์žˆ๋Š” ์ฝ”๋“œ์˜ ๋ชฉ์ ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋Š”
  • ์ˆœ์ˆ˜ ํ•จ์ˆ˜์™€ ๋ถˆ๋ณ€์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ?
  • ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ?
  • ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’ํžŒ๋‹ค?

๐Ÿซง ์ˆœ์ˆ˜ ํ•จ์ˆ˜ (๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š”)

  • ๋™์ผํ•œ ์ž…๋ ฅ์— ๋Œ€ํ•ด ํ•ญ์ƒ ๋™์ผํ•œ ์ถœ๋ ฅ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค
  • ํ•จ์ˆ˜ ์™ธ๋ถ€์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค
  • ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ (๋ถ€์ž‘์šฉ)์ด ์—†๋‹ค

๐Ÿซง ๋ถˆ๋ณ€์„ฑ

  • ๋ฐ์ดํ„ฐ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค
  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
  • -> ์ด๋Š” ์ƒํƒœ ๋ณ€ํ™”๋กœ ์ธํ•œ ๋ฒ„๊ทธ๋ฅผ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค

๐Ÿซง ๊ณ ์ฐจํ•จ์ˆ˜

  • ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ๋ฐ›๊ฑฐ๋‚˜ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
  • i.e. Where Select Sum

๐Ÿซง ์ผ๊ธ‰ ๊ฐ์ฒด (๋กœ์„œ์˜ ํ•จ์ˆ˜)

  • ํ•จ์ˆ˜๊ฐ€ ๋ณ€์ˆ˜์— ํ• ๋‹น๋  ์ˆ˜ ์žˆ๊ณ (๋ธ๋ฆฌ๊ฒŒ์ดํŠธ),
  • ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋˜๊ฑฐ๋‚˜
  • ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค (๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด, ๋ฆฌ์ŠคํŠธ, ๋งต๋“ฑ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค)

๐Ÿซง ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ์ง€์— ์ง‘์ค‘ํ•˜๋ฉฐ, ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€๋Š” ๋ช…์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค
  • Against ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๐Ÿ’ซ ์ฐธ๊ณ 


์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.