[Haskell] List
List๋ ํ์ค์ผ์์ ์ ๊ณตํ๋ ๋ด์ฅ ์ฐ๊ฒฐ๋ฆฌ์คํธ ํ์ ์ด๋ค. ๋ฐฐ์ด์ฒ๋ผ ํํํ์ง๋ง ๋ฐฐ์ด์ด ์๋๊ณ , O(1) ์ ๊ทผ๋ ๋ถ๊ฐ๋ฅํ๋ค.
ํ์ ์ [T]๋ก ํํํ๊ณ , ๊ฐ์ [a, b, c, ...]๋ก ํํํ๋ค.
๊ทธ๋ฅ print๋ก ์ฐ์ด๋ ์ ๋ณด์ฌ์ค๋ค.


์ฒซ๋ฒ์งธ ์์ ๋ฐํ head
๋ฆฌ์คํธ์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ๋ฐํํ๋ค.
๋ณ๊ฒ ์๋๊ฒ๊ฐ์ง๋ง ์ฌ๊ท์ ์ผ๋ก ๋ฆฌ์คํธ์ ์ ๊ทผํ ๋ ๊ผญ ํ์ํ ๋
์์ด๋ค.
tail๊ณผ ํจ๊ป ์ฐ์ด๊ณค ํ๋ค.


์ฒซ๋ฒ์งธ๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ฐํ tail
head๋ฅผ ๋บ ๋๋จธ์ง๋ฅผ ๋ฐํํ๋ค. ๋ณดํต ์ด๊ฑธ ์จ์ ์ฌ๊ท์ ์ ๊ทผ์ ์ํํ๊ณค ํ๋ค.


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


์ธ๋ฑ์ฑ ์ฐ์ฐ์ !!
ํน์ ์์์ ์ ๊ทผํ๋ ค๋ฉด
๋ฆฌ์คํธ !! ์ธ๋ฑ์ค
๋ก ์ ๊ทผํ ์ ์๋ค. ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๋ค.


length ํจ์
๊ธธ์ด๋ length ํจ์๋ก ๊ฐ์ ธ์ฌ ์ ์๊ณ


++์ฐ์ฐ์
๋ฆฌ์คํธ๋ผ๋ฆฌ ++ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์คํธ๋ฅผ ์ด์ด๋ถ์ผ ์ ์๋ค.


๋ฒ์ ํํ์ ..
์ ๊ธฐ์ ๋ค ๋ฐ์ดํ๋ก ํ๋ํ๋ ์ ์์ง๋ง, ์ผ๋ จ๋ ๊ฐ์ด๋ผ๋ฉด .. ๋ฒ์ํํ์ผ๋ก ์ฝ๊ฒ ํํํ ์๋ ์๋ค.


sum ํจ์
ํ์ค์ผ์๋ ํธ์๋ฅผ ์ํ ์๋ง์ ํจ์๋ค์ด ์ ๊ณต๋๋๋ฐ, sum๋ ๊ทธ์ค ํ๋๋ค.
์ด๊ฑด ๋ฆฌ์คํธ๋ฅผ ์ํํ๋ฉฐ ๊ฐ์ ๋ค ๋ํด์ค๋ค.


product ํจ์
sum์ด ๋ค ๋ํ๊ฑฐ๋ผ๋ฉด ์ด๊ฑฐ๋ ๋ค ๊ณฑํ๋ ๊ฒ์ด๋ค.


map ํจ์
์ผ๊ด ์ฒ๋ฆฌ๋ฅผ ๊ฐํธํ๊ฒ ํ๊ธฐ ์ํ ๊ณ ์ฐจํจ์๋ค.
๊ฐ๊ฐ์ ์์์ ๋ํด ๋ฐ์ ํจ์๋ฅผ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ์ง์ด๋ฃ์ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด ๋ฐํํ๋ค.


์ด๋ฐ์์ผ๋ก๋ ์๋ํ๋ค.
์น์
๊ณผ ๋ถ๋ถ ํจ์๋ฅผ ์์ฉํ ๊ฑฐ๋ผ๊ณ ํ๋๋ฐ ์ด๊ฑด ๋ฐ๋ก ์์๋ณด๋๋ก ํ์


filter ํจ์
์ด๊ฒ๋ ๊ณ ์ฐจํจ์๋ค. ๊ฐ๊ฐ์ ์์์ ๋ํด ๋ฐ์ ํจ์๊ฐ true๋ฅผ ๋ฐํํ ๊ฒ๋ง์ ๋ชจ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํด์ ๋ฐํํ๋ค.
์๋ ์ฝ๋๋ ํ์๋ง์ ๊ฑธ๋ฌ๋ด์ ๋ฐํํ๋ค.


์์ ๋ถ์ด๊ธฐ(prepend) ์ฐ์ฐ์ :
A : List
์ ๊ฐ์ด ํ๋ฉด List์ ์์ A ์์๊ฐ ์ถ๊ฐ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋ฅธ์ชฝ๋ถํฐ ํ๊ฐํ๋ค.


