Lambda function
ํจ์ ์์์ ๋ถ๋ฅผ ์ ์๋ย Local function! ์ฌ์ค ์ ์ฒด๋ ๊ฐ์ฒด์ด์ง๋ง, ์ฐ๋ฆฌ๋ ํจ์์ ๊ฐ๋ ์ผ๋ก ๊ฐ๋ค ์ด๋ค!
Usage
Local function ์ด๊ธฐ ๋๋ฌธ์ ๋ง๋ค์ด์ก๋ค๊ฐ ๋ฆฌํด ํ ์ฌ๋ผ์ง๋ค.
Example
evaluate
ย ํจ์๋ ํจ์ ํฌ์ธํฐ์, ์ธ์ ๋๊ฐ๋ฅผ ๋ฐ์, ํด๋นํ๋ ํจ์๋ฅผ ๋ฆฌํดํด์ฃผ๋ ํจ์์ด๋ค. main
ย ํจ์ ๋ด์์ ์ฆ์์ผ๋ก ๋ด๊ฐ ์ํ๋ ํจ์๋ฅผ ๋ง๋ค๊ณ , evaluate
ย ํจ์๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด Lambda function ์ ์ฌ์ฉํ๋ฉด ๋๋ค!
closure
์ฐ๋ฆฌ๊ฐ ๊ธฐ์กด์ ํจ์๋ฅผ ๋ง๋ค ๋, ๋๋ค ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ฐ๋ฆฌ๋ ์ด๊ฑธ ํจ์์ฒ๋ผ ์ฌ์ฉํ๋ค. ์ฆ, ์ ๋ ฅ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ธํ๊ณ ๋ ํจ์์ ๊ตฌํ๋ถ์์ ๋ค๋ฅธ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์๋ค.
ํ์ง๋ง ๋๋คํจ์์ ๊ฒฝ์ฐ, ์ ๋ ฅ ํ๋ผ๋ฏธํฐ์ด์ธ์ ๋ณ์๋ฅผ ์ฝ์ด์ฌ ์ ์๋ค.
๋๋ค ํจ์๊ฐ ํน์ ํจ์์ย ์ง์ญ ํจ์ย ์ฒ๋ผ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ธ๋ฐ, ๋๋คํจ์๊ฐ ์ํด์๋ ํจ์์ ๋ณ์๋ฅผ ๊ฐ์ ธ์ ์ฌ์ฉํ ์ ์๋ค.
์ด ์ ๋๋ฌธ์, ๊ธ์ ๋์ ๋ถ์์ ๋๋คํจ์์ ์ ์ฒด๋ ๊ฐ์ฒด๋ผ๊ณ ํ๋ ๊ฒ์ด๋ค! ํจ์์ ๋ชจ์์ ํ๊ณ ์์ง๋ง, ํด๋์ค ๊ตฌ์ฑ์ด ๊ฐ์ฒด์ฒ๋ผ ๋์ด ์๋ค.(๋ํผ์ )
์ฌ์ฉ์๋ ๋ค์๊ณผ ๊ฐ๋ค.
Function Object
์ฐ๋ฆฌ๊ฐ ์์์ ๊ตฌํํย evaluate
ย ํจ์์์, ํจ์ ํฌ์ธํฐ๋ก ์ฒซ๋ฒ์งธ ์ธ์๋ฅผ ์ฃผ์๋ค.
๊ทธ๋ฐ๋ฐ, ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด์ ๋ํ๋ด๋ ๊ฒ์ ์ํํ๋ฏ๋ก, ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ํํํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋ณด๋ค ์์ ํ๋ค.
์ด ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฐ์ฒด๊ฐย function
ย ์ด๋ค.