Skip to content

Latest commit

ย 

History

History
119 lines (62 loc) ยท 5.46 KB

File metadata and controls

119 lines (62 loc) ยท 5.46 KB

ํ•˜์Šค์ผˆ ํ•™์Šต ๊ฐ€์ด๋“œ

์ด ๊ธ€์€ ์—ฌ๋Ÿฌ๋ถ„์ด ํ•˜์Šค์ผˆ์„ ๋ฐฐ์šฐ๋Š”๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฐ€์ด๋“œ๋กœ ํ•˜์Šค์ผˆ ๋ถ (Haskell Book)์˜ ์ €์ž ์ค‘ ํ•œ ์‚ฌ๋žŒ์˜ ์ถ”์ฒœ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

๋น„ ์˜์–ด๊ถŒ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๋ฒˆ์—ญ

์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋œ๋‹ค๊ณ  ๊ณ„์† ๋ถ™์žก๊ณ  ์žˆ์ง€ ๋งˆ์„ธ์š”. ์ง„๋„๋ฅผ ๊ณ„์† ๋‚˜๊ฐ€์„ธ์š”!

์ปค๋ฎค๋‹ˆํ‹ฐ

์ €ํฌ IRC ์ฒด๋„์€ Freenode์˜ #haskell-beginners ์ž…๋‹ˆ๋‹ค.

IRC ์›น ํด๋ผ์ด์–ธํŠธ here.

ํ•˜์Šค์ผˆ ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ.

์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทœ์น™

IRC ์ฒด๋„์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทœ์น™์„ ๊ผญ ์ฝ์–ด์ฃผ์„ธ์š”. ์—ฌ๋Ÿฌ๋ถ„์ด ์ง€๋‚˜์น˜๊ฒŒ ํŠธ๋กค๋ง์„ ํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ฒฝ๊ณ ๋กœ ๋๋‚˜๊ฒ ์ง€๋งŒ, ๋ฐ˜๋“œ์‹œ ์ด ์ฒด๋„์€ ํ•˜์Šค์ผˆ์„ ๋ฐฐ์šฐ๊ณ  ๊ฐ€๋ฅด์น˜๋Š” ๊ณต๊ฐ„์ด๋ผ๋Š” ์ ์„ ๋ช…์‹ฌํ•ด์ฃผ์„ธ์š”.

ํ•˜์Šค์ผˆ ์„ค์น˜ํ•˜๊ธฐ

ํ•˜์Šค์ผˆ์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด Stack์„ ์‚ฌ์šฉํ•˜์„ธ์š”

GHC๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Stack์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

Stack์„ ์ฒ˜์Œ ๋“ค์–ด๋ณด๊ฑฐ๋‚˜ ๊ฐœ์š”๋ฅผ ๋ณด๊ธฐ ์›ํ•˜์‹ ๋‹ค๋ฉด, comprehensive Stack video tutorial์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  HASKELL PLATFORM์œผ๋กœ ์„ค์น˜ํ•˜์ง€ ๋งˆ์„ธ์š”

Haskell.org์—์„œ ์ง€์‹œํ•˜๋Š” ๋Œ€๋กœ ์„ค์น˜ํ•˜์ง€ ๋งˆ์‹œ๊ณ , Stack์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์™œ platform์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋‚˜์š”?

https://mail.haskell.org/pipermail/haskell-community/2015-September/000014.html

ํ•˜์Šค์ผˆ์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ์›Œ์•ผ ํ•˜๋‚˜์š”?

์ €ํฌ๋“ค์€ 2013๋…„ ๋ด„ํ•™๊ธฐ cis194 ๊ฐ•์˜์— ์žˆ๋Š” ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณธ ๋‹ค์Œ์— FP๊ฐ•์˜๋ฅผ ๋“ฃ๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐ•์˜ ๋ชจ๋‘ ์•„๋ž˜์— ๋งํฌ๊ฐ€ ๊ฑธ๋ ค์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™ธ์—๋Š” ์„ ํƒ์ด๋ฉฐ, ์—ฌ๋Ÿฌ๋ถ„์ด ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ์•„๋ž˜์— ๋งํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Haskell Programming from First Principles.

@dmvianna๋Š” ์•„๋ž˜์˜ ๋‚ด์šฉ์ด ๋ฌด๋ฃŒ ๊ถŒ์žฅ ์ž๋ฃŒ ์ผ ๋ฟ์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์•Œ๋ ค ๋“œ๋ฆฌ๊ณ ์žํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ ์ฑ…์œผ๋กœ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด, ์ œ๊ฐ€ ์“ด Haskell Book!์„ ์ง„์‹ฌ์œผ๋กœ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์–ด๋–ค ์ด์œ ๋กœ๋“  ์ฑ…์„ ๊ตฌ์ž…ํ•  ์—ฌ์œ ๊ฐ€ ์—†์œผ๋ฉด our support page๋กœ ์—ฐ๋ฝํ•ด์ฃผ์„ธ์š”.

Haskell Book์€ ์—ฌ๊ธฐ์—์„œ ๊ถŒ์žฅ๋˜๋Š” ๋ชจ๋“  ์ฃผ์š” ๋‚ด์šฉ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

Yorgey์˜ cis194 ๊ฐ•์˜

Haskell Book์„ ๊ตฌ๋งคํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ด ๊ฐ•์˜๋ฅผ ๋จผ์ € ๋“ค์œผ์„ธ์š”. Haskell ์ž…๋ฌธ์„ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์ˆ˜์—…์ž…๋‹ˆ๋‹ค.

์˜จ๋ผ์ธ์—์„œ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Brent Yorgey์˜ ๊ฐ•์˜๋Š” ์ œ๊ฐ€ ์ฐพ์•„ ๋ณธ ๊ฒƒ์ค‘ ๊ฐ€์žฅ ์ข‹์€ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” ๊ธฐ๋ณธ์ ์ธ ํ•˜์Šค์ผˆ ์ฝ”๋”ฉ๋Šฅ๋ ฅ์„ ๊ฐ–์ถฐ์ค„ ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ parser combinator๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์„ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์—ฌ๋Ÿฌ๋ถ„์ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ณธ์ ์ด ์—†๋‹ค๋ฉด ์ด ๊ฐ•์˜๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, Thompson์˜ ์ฑ…์„ ๋จผ์ € ๋ณด๊ณ  cis194๋กœ ๋Œ์•„๊ฐ€์„ธ์š”.


ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ•์˜

์ด ๊ฐ•์˜๋Š” Yorgey์˜ cis194 ๊ฐ•์˜๋ฅผ ๋ชจ๋‘ ๋ณด์‹  ํ›„์— ์ถ”์ฒœ๋“œ๋ฆฌ๋Š” ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

GitHub์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋Š” cis194์—์„œ ์†Œ๊ฐœํ•œ ์ถ”์ƒํ™”๊ธฐ๋ฒ•์„ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ค๋ ฅ์„ ๊ธธ๋Ÿฌ์ค๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” ํ•˜์Šค์ผˆ์—์„œ Functor, Applicative, Monad์ฒ˜๋Ÿผ ๋งค์ผ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…๋“ค์— ์ต์ˆ™ํ•ด์ง€๋„๋ก ํ›ˆ๋ จํ•ด์ฃผ๋Š” ์ค‘์š”ํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. cis194๋ฅผ ๋จผ์ € ๋ณด๊ณ  FP๊ฐ•์˜๋ฅผ ๋ณด๋Š” ๋ฐฉ๋ฒ•์ด ์ €ํฌ๋“ค์ด ์ถ”์ฒœํ•˜๋Š” ํ•˜์Šค์ผˆ ํ•™์Šต๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.


cis194์™€ FP๊ฐ•์˜๋ฅผ ๋ณธ ํ›„์˜ ๋ณด์ถฉ๊ฐ•์˜

๋” ๋งŽ์€ ์ž๋ฃŒ์™€ ์ค‘๊ธ‰ ์ฃผ์ œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

cs240h๋Š” ์˜จ๋ผ์ธ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋Š” Stanford์—์„œ ๊ฐ•์˜ํ•˜์‹œ๋Š” Bryan O'Sullivan์˜ ์˜จ๋ผ์ธ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด๋ถ„์„ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด, ๋‚˜์ค‘์— ํ•„์š”ํ•˜๊ฒŒ ๋  ํ•˜์Šค์ผˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์‚ดํŽด๋ณด๋ฉด ๊ทธ์˜ ์ด๋ฆ„์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. cis194๋ฅผ ๋๋งˆ์ณค๋‹ค๋ฉด phantom types๋‚˜ information flow control, language extensions, concurrency, pipes, lenses ๋‚ด์šฉ์€ ๋ณด์‹ ์ ์ด ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.


Haskell์˜ ํŠน์ • ์ฃผ์ œ์— ๋Œ€ํ•œ ์ž๋ฃŒ

์ด ์ž๋ฃŒ๋“ค์€ cis194์™€ FP๊ฐ•์˜๋ฅผ ๋“ค์€ ์‚ฌ๋žŒ๋“ค์— ๋Œ€ํ•ด ์ ๊ฒ€ํ•ด๋ณด์ง€ ์•Š์•˜์ง€๋งŒ, ์—ฌ๋Ÿฌ๋ถ„์ด ์–ด๋””์„œ ์‹œ์ž‘ํ•ด์•ผ ํ• ์ง€ ๋„์™€์ฃผ๊ธฐ ์œ„ํ•ด ์ฃผ์ œ ๋ฆฌ์ŠคํŠธ์— ๋งํฌ๋ฅผ ๋ชจ์•„๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฆฌ์ŠคํŠธ์—๋Š” ํˆด๊ณผ ์—๋””ํ„ฐ ๊ฐ™์€ ์ค‘๊ธ‰์ด๋‚˜ ๊ณ ๊ธ‰์ •๋„์˜ ๊ฐœ๋…๋“ค๊ณผ ์ฃผ์ œ๋„ ๋‹ด๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค.

ํ† ๋ก 

์ด ์ €์žฅ์†Œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ๋“ค์€ ๊ฝค ์ค‘์š”ํ•˜๊ณ  ๋„์›€์ด ๋ ๊ฒ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋“ค์–ด๊ฐ€์„œ ๋‹ค์–‘ํ•œ ์ฃผ์ œ๋“ค์„ ๋งŒ๋‚˜๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.