¸ñÂ÷ ¸Ó¸®¸» ¿Å±äÀÌ ¸Ó¸®¸» Ãßõ»ç --------------------------------------- 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]