[Haskell] ํ•จ์ˆ˜

[์›๋ณธ ๋งํฌ]

ํ•จ์ˆ˜ ์„ ์–ธ์€

ํ•จ์ˆ˜๋ช… ์ธ์ž1 ์ธ์ž2... = ๋ฐ˜ํ™˜๋ฌธ
์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.

์ธ์ž๋ฅผ 2๊ฐœ ๋ฐ›์•„์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. image

image ํ•จ์ˆ˜ ๋ฐ˜ํ™˜๋ฌธ์„ ๊ฐœํ–‰ํ•  ๊ฒฝ์šฐ ์ €๊ธฐ main๋ฌธ์ฒ˜๋Ÿผ ๋ฌด์กฐ๊ฑด ๋“ค์—ฌ์“ฐ๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
๊ทธ๊ฑธ๋กœ ํฌํ•จ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


infix ํ•จ์ˆ˜ํ˜ธ์ถœ
๊ทธ๋ฆฌ๊ณ  ์ธ์ž๊ฐ€ 2๊ฐœ์ธ ํ•จ์ˆ˜๋Š”
A ํ•จ์ˆ˜๋ช… B
์™€ ๊ฐ™์ด ํ•ด์„œ infix๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ž‘์€ ๋”ฐ์˜ดํ‘œ๊ฐ€ ์•„๋‹ˆ๋‹ค. image

image


ํ•จ์ˆ˜ ํƒ€์ž… ๋ช…์‹œ
ํ•จ์ˆ˜๋„ ์ƒ์ˆ˜์ฒ˜๋Ÿผ ํƒ€์ž…์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
ํƒ€์ž… ํ‘œํ˜„์€
์ธ์ž1->์ธ์ž2->...์ธ์žN->๋ฐ˜ํ™˜ํƒ€์ž…
์œผ๋กœ ํ•œ๋‹ค.
์ฐธ์œผ๋กœ ๊ธฐ๊ดดํ•˜๋‹ค.
๊ธฐ์กด์˜ add ํ•จ์ˆ˜์— ํƒ€์ž…์„ ์ง€์ •ํ•ด๋ดค๋‹ค. image

image ์ด๋Ÿฌ๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ Int๊ฐ’๋ฐ–์— ์ค„ ์ˆ˜ ์—†๋‹ค.


๋กœ์ปฌ ์ •์˜ where์ ˆ
์ด์ œ๊นŒ์ง€๋Š” ์ƒ์ˆ˜์˜ ์ •์˜๋ฅผ ์ „์—ญ์—์„œ ํ–ˆ์—ˆ๋Š”๋ฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜์Šค์ผˆ์—์„œ ํ•จ์ˆ˜๋Š” ๋‹จ์ผ ๋ฐ˜ํ™˜ ๊ตฌ๋ฌธ๋งŒ์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๊ทธ๋ž˜์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ์—๋Ÿฌ๋ฅผ ๋ฑ‰๋Š”๋‹ค.
2๊ฐœ์˜ ๊ตฌ๋ฌธ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. image

image

์ด๊ฑธ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์‚ฌ์šฉํ•  ์ƒ์ˆ˜์˜ ์ •์˜๋“ค์„ where ๋ฅผ ๋‘๊ณ  ๊ทธ ๋’ค์—๋‹ค ์“ฐ๋ฉด ๋œ๋‹ค. image

image ์ด์ œ ์ž˜ ๋œ๋‹ค.