ÇϽºÄÌ·Î ¶Ù¾îµé¶ó!
10¿© ³â°£ ÇÔ¼öÇü ÇÁ·Î±×·¡¹ÖÀ» ¿¬±¸ÇØ¿Â ±×¶óÇÔ ÇãÆ°ÀÇ ¡ºÇϽºÄÌ·Î ¹è¿ì´Â ÇÁ·Î±×·¡¹Ö¡». ÇÁ·Î±×·¡¹Ö ÀÛ¾÷Àº ¸íÈ®ÇÏ°Ô, ÄÚµù ¼öÁ¤Àº ´Ü¼øÇÏ°Ô ¸¸µå´Â ÇϽºÄÌ(Haskell)¿¡ ´ëÇÑ ÀÔ¹®¼´Ù.
ÀúÀÚ°¡ ³ëÆþö ´ëÇп¡¼ ÇϽºÄÌ¿¡ ´ëÇØ °ÀÇÇÏ¸é¼ ´ÙµëÀº ±³ÀçÀÇ ³»¿ëÀ» ¹ÙÅÁÀ¸·Î »ïÀº ÀÌ Ã¥Àº, ¾îÁö·¯¿î ÇÁ·Î±×·¡¹Ö ÀÛ¾÷°ú ÄÚµù ¼öÁ¤¿¡ °í´ÜÇÔÀ» ´À³¢´Â °³¹ßÀÚµéÀ» À§ÇØ Àú¼úµÈ °ÍÀÌ´Ù. ÄÄÆÄÀÏ ¾ð¾îó·³ È¿À²¼ºÀÌ ³ôÀ¸¸é¼µµ ½ºÅ©¸³Æ® ¾ð¾îó·³ ºü¸¦ »Ó ¾Æ´Ï¶ó, ¸ÞÄ¿´ÏÁòÀ» ÆľÇÇϱ⿡ ½¬¿ö ÇÁ·Î±×·¡¹Ö ¾ð¾î ¿¬±¸Àڵ鿡°Ô »ç¶û¹Þ´Â ÇϽºÄÌÀ» ÅëÇØ ÇÁ·Î±×·¥À» ´Ü¼øÇϸ鼵µ ¸íÈ®ÇÏ°í ¿ì¾Æ¾Æ°Ô Â¥´Â ¹æ¹ýÀ» ¹è¿ï ¼ö ÀÖ´Ù
ƯÈ÷ ÇÁ·Î±×·¥ÀÇ ¼ºÁúÀ» Áõ¸íÇÏ´Â ¹æ¹ýÀ» ÀÍÈ÷±â À¯¿ëÇÑ ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö°ú ¸¸³ª°Ô µÈ´Ù. À帶´Ù ¿¬½À¹®Á¦¸¦ ¼ö·ÏÇÏ¿© ÇнÀÇÑ ³»¿ëÀ» Á¡°ËÇÒ ¼ö ÀÖµµ·Ï ²Ù¸ì´Ù. ÇϽºÄÌ 98À» ÁßÁ¡ÀûÀ¸·Î ´Ù·é´Ù.
¢Ñ CP Say!
¡ºÇϽºÄÌ·Î ¹è¿ì´Â ÇÁ·Î±×·¡¹Ö¡»À» ÇнÀÇÏ½Ç ¶§ 'http://pl.pusan.ac.kr/~haskeel'(ÇѱÛ)À̳ª 'http://www.cs.nott.ac.uk/~gmh/book.html'(¿µ¾î)À» ÅëÇØ ÂüÁ¶ÇϽøé À¯¿ëÇÑ ÀڷḦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
¸Ó¸®¸»
¿Å±äÀÌ ¸Ó¸®¸»
̵̧ȍ
1 ¼Ò°³
ÇÔ¼ö
ÇÔ¼öÇü ÇÁ·Î±×·¡¹Öfunctional programming
ÇϽºÄÌÀÇ Æ¯Â¡
¿ª»çÀû ¹è°æ
ÇϽºÄÌ ¸Àº¸±â
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
2 ù°ÉÀ½ ¶¼±â
Hugs ½Ã½ºÅÛ
Ç¥ÁØ ¼¸·standard prelude
ÇÔ¼ö
ÇϽºÄÌ ½ºÅ©¸³Æ®
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
3 ŸÀÔ°ú Ŭ·¡½º
±âº» °³³ä
±âº» ŸÀÔ
¸®½ºÆ® ŸÀÔ
¼ø¼½Ö ŸÀÔ
ÇÔ¼ö ŸÀÔ
Ä¿¸®µÈcurried ÇÔ¼ö
¿©·¯ ¸ð¾çpolymorphic ŸÀÔ
¿©·¯ ÀǹÌoverloaded ŸÀÔ
±âº» Ŭ·¡½º
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
4 ÇÔ¼ö Á¤ÀÇ
»õ°ÍÀ» ¿¾°ÍÀ¸·ÎºÎÅÍ
Á¶°Ç½Äconditional expression
º¸Ãʼ± µî½Äguarded equation
ÆÐÅÏ ¸ÅĪpattern matching
¶÷´Ù½Älambda expression
À߸°½Äsection
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
5 ¸®½ºÆ® Á¶°ÇÁ¦½Ã½Äcomprehension
»ý¼º¿øgenerator
º¸ÃÊguard
Zip ÇÔ¼ö
±ÛÁÙstring Á¶°ÇÁ¦½Ã½Äcomprehension
Ä«À̻縣 ¾ÏÈ£Caesar cipher
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
6 µÇµµ´Â ÇÔ¼örecursive function
±âº» °³³ä
¸®½ºÆ®·Î µÇµ¹±â
ÀÎÀÚ°¡ ¿©·µÀÏ ¶§
¿©·¯ °¥·¡·Î µÇµ¹±â
¼·Î ºÎ¸£¸ç µÇµ¹±âmutual recursion
µÇµµ´Â ÇÔ¼ö Á¤ÀǸ¦ À§ÇÑ µµ¿ò¸»
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
7 ÇÔ¼ö¸¦ ÁÖ°í¹Þ´Âhigher-order ÇÔ¼ö
±âº» °³³ä
¸®½ºÆ® ´Ù·ç±â
foldr ÇÔ¼ö
foldl ÇÔ¼ö
ÇÔ¼ö ÇÕ¼º ¿¬»êÀÚ
±ÛÁÙstring Àü¼Û±â
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
8 ÇÔ¼öÇü ¹®¹ý ºÐ¼®±â functional parser
¹®¹ý ºÐ¼®±âparser
¹®¹ý ºÐ¼®±â ŸÀÔ
±âº» ¹®¹ý ºÐ¼®±â
¼ø¼´ë·Î ¿«±âsequencing
¼±ÅÃchoice
°£´ÜÇÑ ¹®¹ý ºÐ¼®±â À̲ø¾î³»±â
ºóÄ Ã³¸®
»ê¼ú½Ä ¹®¹ý ºÐ¼®Çϱâ
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
9 ´ëȽÄinteractive ÇÁ·Î±×·¥
´ëÈinteraction
ÀÔÃâ·Â ŸÀÔ
±âº» µ¿ÀÛbasic action
¼ø¼´ë·Î ¿«±âsequencing
°£´ÜÇÑ µ¿ÀÛ À̲ø¾î³»±â
°è»ê±â
»ý¸í °ÔÀÓgame of life
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
10 ŸÀÔ°ú Ŭ·¡½º ¼±¾ð
ŸÀÔ ¼±¾ð
µ¥ÀÌÅÍ ¼±¾ð
µÇµµ´Â ŸÀÔ
´Ã Âütautology °Ë»ç±â
Ãß»ó ±â°èabstract machine
Ŭ·¡½º¿Í ÀνºÅϽº ¼±¾ð
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
11 Ä«¿îÆ®´Ù¿î ¹®Á¦ countdown problem
¼Ò°³
¹®Á¦¸¦ ¼ö½ÄÀ¸·Î Á¤¸®Çϱâ
Áü½Â°°ÀÌ ¹«½ÄÇÑbrute-force Ç®ÀÌ
»ý¼ºgenerationÇÏ¸é¼ °è»êevaluationÇϱâ
´ë¼öÀû ¼ºÁúÀ» ÀÌ¿ëÇϱâ
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
12 ´À±ßÇÑ °è»ê¹ýlazy evaluation
¼Ò°³
°è»ê ¹æ½Äevaluation strategy
³¡³²termination
ÁÙÀ̱âreduction Ƚ¼ö
¹«ÇÑ ±¸Á¶infinite structure
¸ðµâ ¹æ½Ämodular ÇÁ·Î±×·¡¹Ö
±ñ±ñÇÑ Àû¿ëstrict application
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
13 ÇÁ·Î±×·¥¿¡ ´ëÇÑ ³í¸®Àû Áõ¸í
µî½Ä ¹ÙÅÁÀÇ ³íÁõequational reasoning
ÇϽºÄÌ ÇÁ·Î±×·¥¿¡ ´ëÇÑ ³íÁõ
°£´ÜÇÑ º¸±âµé
ÀÚ¿¬¼ö¿¡ ´ëÇÑ ±Í³³¹ý
¸®½ºÆ®¿¡ ´ëÇÑ ±Í³³¹ý
À̾îºÙÀ̱⠿¬»êÀÚ ¾ø¾Ö±â
¹ø¿ª±â Á¤È®¼ºcompiler correctness
[»ìÆ캸±â]
[¿¬½À¹®Á¦]
[ºÎ·Ï] A Ç¥ÁØ ¼¸·standard prelude
Ŭ·¡½ºclass
³í¸®°ªlogical value
±ÛÀÚcharacter¿Í ±ÛÁÙstring
¼önumber
¼ø¼½Ötuples
¾Æ¸¶µµMaybe
¸®½ºÆ®list
ÇÔ¼öfunction
ÀÔÃâ·Âinput/output
[ºÎ·Ï] B ±âȣǥ ¹× Hugs ¸í·É¾î
[ºÎ·Ï] C ¹ø¿ª ¿ë·Ê
[Âü°í¹®Çå]
[Index]