[Haskell] ํจ์
ํจ์ ์ ์ธ์
ํจ์๋ช
์ธ์1 ์ธ์2... = ๋ฐํ๋ฌธ
์ ํํ๋ฅผ ๊ฐ์ง๋ค.
์ธ์๋ฅผ 2๊ฐ ๋ฐ์์ ๋ฐํํ๋ ํจ์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํ ์ ์๋ค.

ํจ์ ๋ฐํ๋ฌธ์ ๊ฐํํ ๊ฒฝ์ฐ ์ ๊ธฐ main๋ฌธ์ฒ๋ผ ๋ฌด์กฐ๊ฑด ๋ค์ฌ์ฐ๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
๊ทธ๊ฑธ๋ก ํฌํจ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ๋๋ฌธ์ด๋ค.
infix ํจ์ํธ์ถ
๊ทธ๋ฆฌ๊ณ ์ธ์๊ฐ 2๊ฐ์ธ ํจ์๋
A ํจ์๋ช
B
์ ๊ฐ์ด ํด์ infix๋ก ํํํ ์๋ ์๋ค. ์์ ๋ฐ์ดํ๊ฐ ์๋๋ค.


ํจ์ ํ์
๋ช
์
ํจ์๋ ์์์ฒ๋ผ ํ์
์ ๋ช
์ํ ์ ์๋ค.
ํ์
ํํ์
์ธ์1->์ธ์2->...์ธ์N->๋ฐํํ์
์ผ๋ก ํ๋ค.
์ฐธ์ผ๋ก ๊ธฐ๊ดดํ๋ค.
๊ธฐ์กด์ add ํจ์์ ํ์
์ ์ง์ ํด๋ดค๋ค.

์ด๋ฌ๋ฉด ํด๋น ํจ์์ ์ธ์๋ก Int๊ฐ๋ฐ์ ์ค ์ ์๋ค.
๋ก์ปฌ ์ ์ where์
์ด์ ๊น์ง๋ ์์์ ์ ์๋ฅผ ์ ์ญ์์ ํ์๋๋ฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ค์ผ์์ ํจ์๋ ๋จ์ผ ๋ฐํ ๊ตฌ๋ฌธ๋ง์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ ์๋ฌ๋ฅผ ๋ฑ๋๋ค.
2๊ฐ์ ๊ตฌ๋ฌธ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.


์ด๊ฑธ ํด๊ฒฐํ๋ ค๋ฉด ์ฌ์ฉํ ์์์ ์ ์๋ค์ where ๋ฅผ ๋๊ณ ๊ทธ ๋ค์๋ค ์ฐ๋ฉด ๋๋ค.

์ด์ ์ ๋๋ค.