[F#] ๋ฆฌ์คํธ
๋ฆฌ์คํธ๋ F#์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ณตํฉ ํ์ ์ค ํ๋๋ค. ๋ฆฌ์คํธ์ ๋ฆฌํฐ๋ด์ ๋๊ดํธ๋ก ๊ฐ์ธ์ธ, ;๋ก ๊ตฌ๋ถ๋ ์ํ์ค๋ก ํํ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์
์ T list์ ํํ๋ก ๋ช
์ํ ์ ์๋ค.
์ด๋ ๊ฒ ๋ง์ด๋ค.


ํ์ง๋ง ์ฌ๋ฌ ํ์ ๊ฑธ์ณ ์์๋ฅผ ์จ์ฃผ๊ณ ์ถ๋ค๋ฉด, ์ธ๋ฏธ์ฝ๋ก ์ ๋บ ์ ์๋ค.


์์ ๋ณํฉ ์ฐ์ฐ์ ::
:: ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ๋ฆฌ์คํธ์ ์์๋ฅผ ํ๋์ฉ ์ฐ๊ฒฐ์ํฌ ์ ์๋ค.
**A :: B **
์ผ์ชฝ ํผ์ฐ์ฐ์๋ ์์, ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์๋ ๋ฆฌ์คํธ๊ณ , ๋ณํฉํ ๋ฆฌ์คํธ๊ฐ ๋ฐํ๋๋ค.
์ค์ฒฉ๋ ๋ณํฉ๋ฌธ์ผ ๊ฒฝ์ฐ์๋ ๋งจ ์ค๋ฅธ์ชฝ์ ๋ฆฌ์คํธ๊ฐ ๊ผญ ํ๋ ์์ด์ผํ๋ค.


๋ฒ์ ํํ์
๋ฆฌ์คํธ๋ ๋ฒ์ํํ์์ ์ฌ์ฉํด์ ์ํ์ค๋ฅผ ๊ฐ๋จํ๊ฒ ์์ฑํ ์๋ ์๋ค.


๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
๋ฆฌ์คํธ ๋ฆฌํฐ๋ด์์ ๋ฐ๋ณต๋ฌธ์ ์ค์
๋๊ณ , ๊ทธ๋ฅผ ํตํด ์ํ์ค๊ฐ์ ๊ฐ๊ณตํ๊ฑฐ๋, ์ ๋ณ์ ์ผ๋ก ์ถ์ถํด๋ผ ์ ์๋ ๊ธฐ๋ฅ์ด๋ค.
๋ฆฌ์คํธ๋ก์ ๊ฐ์ ์ฝ์
์ yield ํค์๋๋ฅผ ํตํด ์ํํ๋ค.
์๋ ์ฝ๋๋ 1..10์ ๊ฐ๊ฐ 2๋ฅผ ๊ณฑํ ๊ฐ์ ๋ฆฌ์คํธ๋ก ๋ง๋ ๋ค.


๊ทผ๋ฐ yield๋ ํ๋์ฉ๋ง ๋ฆฌ์คํธ๋ก ์ง์ด๋ฃ๋๋ค.
ํ๋ฒ์ ์ฌ๋ฌ๊ฐ๋ฅผ ์ง์ด๋ฃ๊ณ ์ถ๋ค๋ฉด yield!๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.


๊ธฐ๋ณธ ํ๋กํผํฐ, ํจ์๋ค.
๋ฆฌ์คํธ์๋ ์๋ง์, ์ ์ฉํ ๋ฉ์๋๋ค์ด ๋ด์ฅ๋์ด์๋ค.
๊ทธ์ค์์๋ ๊ฐ์ฅ ์์ฃผ ์ฐ์ด๋ ๊ฒ์ด '๋จธ๋ฆฌ'์ '๊ผฌ๋ฆฌ'๋ค. ๋จธ๋ฆฌ๋ ๋งจ ์์ ์ธ์๋ฅผ, ๊ผฌ๋ฆฌ๋ ๊ทธ ๋๋จธ์ง์ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ธ์จ๋ค.


์ด๋ฅผ ์ฌ๊ทํจ์์ ํจ๊ป ์์ฉํ๋ฉด, ์์ฃผ ํธ๋ฆฌํ๊ฒ ๋ฆฌ์คํธ์ ์ํ์ ๊ตฌํํ ์ ์๋ค.


์ด์ธ์๋ ๋ค์ํ ํจ์๋ค์ด ๋ง์ผ๋, ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๊ธธ ๋ฐ๋๋ค.


์ฐธ์กฐ
https://docs.microsoft.com/ko-kr/dotnet/fsharp/language-reference/lists
https://www.tutorialspoint.com/fsharp/fsharp_lists.htm