Functional Programming
Functional Programming
๐ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์
- Procedural Programming | ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ
- Object-Oriented Programming | ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- Functional-Programming | ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- Event-Driven-Programming | ์ด๋ฒคํธ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ
๐ซ Functional Programming | ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๊ณผ์ ์ ํด์ํ ํ์ ์์ด, ์๋ ์ฝ๋์ ๋ชฉ์ ์ ๋ช ํํ๊ฒ ์ ์ ์๋
- ์์ ํจ์์ ๋ถ๋ณ์ฑ์ ๊ธฐ๋ฐ์ผ๋กํ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ?
- ๊ณ ์ฐจํจ์๋ฅผ ์ด์ฉํ๋ ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ?
- ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋ํ๋ค?
๐ซง ์์ ํจ์ (๋ ๋ฆฝ์ ์ผ๋ก ์ํ๋๋)
- ๋์ผํ ์ ๋ ฅ์ ๋ํด ํญ์ ๋์ผํ ์ถ๋ ฅ์ ๋ฐํํ๋ค
- ํจ์ ์ธ๋ถ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์๋๋ค
- ์ฌ์ด๋ ์ดํํธ (๋ถ์์ฉ)์ด ์๋ค
๐ซง ๋ถ๋ณ์ฑ
- ๋ฐ์ดํฐ๋ ๋ณ๊ฒฝ๋์ง ์๋๋ค
- ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ํ์ํ๋ฉด ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ค
- -> ์ด๋ ์ํ ๋ณํ๋ก ์ธํ ๋ฒ๊ทธ๋ฅผ ์ค์ด๋ ๋ฐ ๋์์ด ๋๋ค
๐ซง ๊ณ ์ฐจํจ์
- ํจ์๋ฅผ ์ธ์๋ก ๋ฐ๊ฑฐ๋ ํจ์๋ฅผ ๋ฐํํ๋ ํจ์
- i.e. Where Select Sum
๐ซง ์ผ๊ธ ๊ฐ์ฒด (๋ก์์ ํจ์)
- ํจ์๊ฐ ๋ณ์์ ํ ๋น๋ ์ ์๊ณ (๋ธ๋ฆฌ๊ฒ์ดํธ),
- ๋ค๋ฅธ ํจ์์ ์ธ์๋ก ์ ๋ฌ๋๊ฑฐ๋
- ๋ฐํ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
- ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ ์ฅํ ์ ์๋ค (๊ฐ์ฒด๋ฅผ ๋ฐฐ์ด, ๋ฆฌ์คํธ, ๋งต๋ฑ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ ์ฅํ ์ ์๋ค)
๐ซง ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ
- ๋ฌด์์ ํ ๊ฒ์ธ์ง์ ์ง์คํ๋ฉฐ, ์ด๋ป๊ฒ ํ ๊ฒ์ธ์ง๋ ๋ช ์ํ์ง ์๋๋ค
- Against ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ
๐ซ ์ฐธ๊ณ
์ด ๊ธฐ์ฌ๋ ์ ์๊ถ์์ CC BY 4.0 ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๋ฆ
๋๋ค.