[Haskell] where ํ‚ค์›Œ๋“œ

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

where๋Š” ํŠน์ • ๊ตฌ๋ฌธ ๋‚ด์—์„œ ์Šค์ฝ”ํ”„๊ฐ€ ์ œํ•œ๋œ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, let์„ ์‚ฌ์šฉํ•ด์„œ ์ƒ์ˆ˜ 2๊ฐœ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ทธ๊ฑธ ์ถœ๋ ฅ์— ์“ด๋‹ค๋ฉด, ์ด๋Ÿฐ ์‹์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ๊ตฌ์„ฑ๋  ๊ฒƒ์ด๋‹ค.

์ด ๊ฒฝ์šฐ ๊ฐ’๋“ค์ด ๋จผ์ € ์ •์˜๋˜๊ณ , ๊ทธ๊ฑธ ๋‚˜์ค‘์— putStrLn๋กœ ๋ชจ์•„์„œ ์ถœ๋ ฅํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ๋ˆ๋‹ค.
์ด๋Ÿฌ๋ฉด ์–ด๋–ค ๊ฐ’์ด ์–ด๋–ค ๊ณณ์— ์‚ฌ์šฉ๋˜๋Š”์ง€๋ฅผ ์ •ํ™•ํžˆ ์ถ”์ ํ•˜๊ธฐ๋„ ์กฐ๊ธˆ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๊ณ , ์ € ์ง€์—ญ์ƒ์ˆ˜๋“ค์ด ํ•ด๋‹น ํ•จ์ˆ˜ ๊ตฌ์—ญ ์ „์ฒด์—์„œ ์ด๋ฆ„์„ ์ฐจ์ง€ํ•œ๋‹ค๋Š” ๋ฌธ์ œ๋„ ์žˆ๋‹ค.

where๋Š” ํ›„์œ„์— ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ํ•ด๋‹น ๊ตฌ๋ฌธ์— ์ข…์†๋˜๊ธฐ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์œ„์˜ ๋ฌธ์ œ๋“ค์„ ์กฐ๊ธˆ ๊ฐœ์„ ํ•œ๋‹ค.

์ด๋Ÿฌ๋ฉด radius์™€ area๋ผ๋Š” ์ƒ์ˆ˜๋Š” ์˜ค๋กœ์ง€ putStrLn ํ‘œํ˜„์‹์˜ ์ปจํ…์ŠคํŠธ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ์ˆ˜๊ฐ€ ๋œ๋‹ค.
ํ•œ๋ˆˆ์— ๋ชจ์•„์„œ ๋ณด๊ธฐ๋„ ์ข‹๋‹ค.

์ด ๊ธฐ๋Šฅ์€ ํŒจํ„ด๋งค์นญ์ด๋‚˜ ์กฐ๊ฑด์ ˆ์— ์‚ฌ์šฉ๋˜๋Š” ์ž„์‹œ ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ๋„ ์ž์ฃผ ์‚ฌ์šฉ๋˜๊ณค ํ•œ๋‹ค.



์ฐธ์กฐ
https://wiki.haskell.org/Let_vs._Where