ÀΰøÁö´É ±¸¼ºÀÇ Ã¶ÇÐ (3)
- ÀΰøÁö´É ¾ð¾î LISP ÀÇ Ã¶ÇÐÀû ±âÃʸ¦ Áß½ÉÀ¸·Î -
ÀΰøÁö´ÉÀÇ Ã¶ÇÐ : ÀÌÃʽÄ, °í·Á´ë ÃâÆÇºÎ, 1993, Page 242~267
AIÀ» ±¸¼ºÇϱâ À§Çؼ´Â ¹«¾ùº¸´Ùµµ ÄÄÇ»ÅÍ ÇÁ·Î±×·¥À» ÀÛµ¿ÇÒ ¼ö ÀÖ´Â ¾ð¾î°¡ ÇÊ¿äÇÏ´Ù. ¿ì¸®´Â ¿À´Ã³¯ AI ¿¬±¸¿¡¼ °¡Àå ³Î¸® ÀÌ¿ëµÇ°í ÀÖ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÎ LISP¿¡¼ À̸¦ °³°üÇØ °¡¸é¼ ±× ¼Ó¿¡ ´ã°ÜÁø öÇÐÀû ±âÃʵéÀ» ¹àÇô º¸°íÀÚ ÇÑ´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷Àº °úÇÐöÇÐ, ƯÈ÷ Çü½Ä°úÇÐÀÇ Ã¶ÇÐÀÇ ½Ã°¢¿¡¼ ¼öÇàµÈ´Ù°í ÇÒ °ÍÀÌ´Ù. ÄÄÇ»ÅÍÀÇ Çü½Ä°ÔÀÓÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ´Ù·ê ¼ö ÀÖ´Â ¹üÀ§´Â ³í¸®ÀûÀ¸·Î Á¢±ÙÇÒ ¼ö ÀÖ´Â ¹üÀ§·Î¼, °úÇÐÀû Áö½ÄÀÇ ±¸Á¶¤ý¼ºÀå¤ýÀÀ¿ëÀÇ ÀϹÝÀ̷аú Ư¼öÀ̷п¡ ÇØ´çµÈ´Ù°í ÇϰڴÙ. ±×·¯³ª ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ Æ¯¼º¿¡ µû¶ó ½ÇÁ¦·Î ´Ù·ê ¼ö ÀÖ´Â °¡´ÉÇÑ ¹üÀ§´Â ±×º¸´Ù ÈξÀ Á¦ÇÑµÉ °ÍÀ̹ǷΠÀÌ ÇѰ踦 Á¶±ÝÀÌ¶óµµ ³ÐÈ÷°í ±× ¾ð¾î·Î Çü¼ºµÇ´Â ÀÛ¾÷ȯ°æÀ» °³¼±ÇØ °¡·Á´Â °ÍÀÌ ÇÁ·Î±×·¡¹Ö ¾ð¾î±¸¼ºÀÇ ¸ñÇ¥ÀÌ´Ù.
LISP´Â 1956³â AIÀÇ Ã¢½ÃÀÚÀÎ John McCarthy ¿¡ ÀÇÇØ °í¾ÈµÈ ÀÌ·¡·Î AI¿¡ ³Î¸® ¾²¿©Áö¸é¼ ¿©·¯ °¡Áö·Î º¸¿ÏµÇ¾ú°í ¸¹Àº ¹æ¾ðµéÀÌ »êÃâµÇ¾ú´Ù. ¿ì¸®°¡ »ìÆìº¸·Á´Â °ÍÀº ¿©·¯ LISPµéÀÇ °øÅëÁ¡À» ¸ð¾Æ ±¸¼ºÇÑ Golden Common LISP ÀÌ´Ù. ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀº ¼öµé(numbers)À» ´Ù·ç´Â µ¥ ºñÇØ LISP´Â ÁÖ·Î ±âȣó¸®(symbolic processing)¸¦ ÇÒ ¼ö ÀÖµµ·Ï °í¾ÈµÈ °ÍÀÌ Æ¯»öÀÌ´Ù. 'LISP'¶ó´Â ¸»ÀÌ LIST PROCESSING LANGUAGE ¿¡¼ À¯·¡µÇ¾úµíÀÌ ±×°ÍÀº ¸®½ºÆ® 󸮾ð¾î¶ó°í ÇÒ ¼ö ÀÖ´Ù. ¿©±â¼ ¸®½ºÆ®¶ó´Â °ÍÀº Áö½ÄÇ¥ÇöÀÇ À¯ÇüÀ¸·Î¼ µ¶Æ¯ÇÑ Àǹ̸¦ Áö´Ñ´Ù. Á»´õ Á¤È®È÷ ¸»Çϸé LISPÀÇ ±âº»ÀûÀÎ µ¥ÀÌÅÍÀ¯Çü(data types)Àº ¸®½ºÆ®¿Í ¾ÆÅè(atom)À¸·Î µÇ¾î ÀÖÀ¸¸ç ¾ÆÅèÀº ´Ù½Ã±Ý ¼ö(number)¿Í ±âÈ£(symbol)·Î ÀÌ·ç¾îÁ® ÀÖ´Ù.
¿ì¸®´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ³íÇÒ ¶§ µ¥ÀÌÅÍ ´ë»ó(data objects)°ú ÀýÂ÷(procedures)¸¦ ±¸º°ÇÏ°Ô µÈ´Ù. À̸¦ ¿ä¸®ÇÏ´Â µ¥ ºñÀ¯Çϸé, °¡·É 'µÎºÎ Âî°³ ¹é¹Ý'ÀÇ °æ¿ì, µÎºÎ¤ý°íÃßÀå¤ý½Ò µîÀÌ µ¥ÀÌÅÍ ´ë»óÀÌ°í ±× ¿ä¸®¹ýÀÌ ÀýÂ÷¶ó°í ÇϰڴÙ. ¿ä¸®ÀÇ Á¾·ù¿¡ µû¶ó ´Ù¾çÇÑ Àç·á°¡ ÇÊ¿äÇÏ°í ¿©·¯ °¡Áö Á¾·ùÀÇ ±×¸©ÀÌ ÀÖ¾î¾ß ÇϵíÀÌ ¸®½ºÆ®ÀÇ Á¾·ùµµ ¹«Ã´ ¸¹´Ù. LISP¿¡¼ ¸®½ºÆ®´Â ÁÂÃø¿¡¼ °ýÈ£¸¦ ¿°í ¿ìÃø¿¡¼ °ýÈ£¸¦ ´Ý´Â Çü½ÄÀ» ÃëÇϴµ¥, ºó ±×¸©Ã³·³ ¾Æ¹«°Íµµ ¾ø´Â ¸®½ºÆ®´Â ( ) ¶Ç´Â nil ·Î Ç¥½ÃÇÑ´Ù. ¸®½ºÆ® ¼Ó¿¡´Â ¾ÆÅèÀ̳ª ´Ù¸¥ ¸®½ºÆ®¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. À̰ÍÀº ¸¶Ä¡ ¾î¶² ±×¸©¿¡´Â µÎºÎ¸¦ ´ã°í ´Ù¸¥ ±×¸©¿¡´Â °íÃßÀåÀ» ´ãÀ¸¸ç ±× ¸ðµÎ¸¦ ´ãÀº ±×¸© ÀÚü¸¦ ´ã´Â ±×¸©ÀÌ ÀÖ´Â °Í°ú Èí»çÇÏ´Ù. ±×·¯¹Ç·Î ¸®½ºÆ®´Â ±×¸©ÀÎ µ¿½Ã¿¡ ±× ÀÚü°¡ ¿ä¸®ÀÇ ÀÚ·á·Î °£ÁÖµÉ ¼ö ÀÖÀ¸¹Ç·Î ¸®½ºÆ®´Â ¾ÆÅè°ú ´õºÒ¾î µ¥ÀÌÅÍ À¯Çü¿¡ ¼ÓÇÑ´Ù°í ÇÏ¿´´Ù. ¾ÆÅèÀ̶ó´Â °ÍÀÌ ´õ ÀÌ»ó ºÐÇÒµÇÁö ¾Ê´Â ¹°ÁúÀÇ ±âº»´ÜÀ§ÀÎ ¿øÀÚ¸¦ ÁöĪÇÏ¿´µíÀÌ ¿©±â¿¡¼´Â ³ª´ ¼ö ¾ø´Â ±âº»´ë»óÀ» ¾ÆÅèÀ̶ó°í Çϸç À̰ÍÀº ¼ö¾ÆÅè°ú ±âÈ£¾ÆÅèÀÇ µÎ °¡Áö À¯ÇüÀ¸·Î Å©°Ô ±¸ºÐµÇ°í ÀÖ´Ù.
3.14
(3.14)
(+ 5 7)
(THIS)
(THIS
IS A BOOK)
À§¿¡¼ 3.14 ´Â ¼ö¾ÆÅèÀÌÁö¸¸ (3.14) ´Â ÇϳªÀÇ ¼ö¾ÆÅèÀ» ¿ä¼Ò·Î Áö´Ñ ¸®½ºÆ®´Ù. ¸®½ºÆ®´Â (THIS)ó·³ ÇϳªÀÇ ´Ü¾îÀÎ ±âÈ£¾ÆÅèÀ» ¿ä¼Ò·Î Çϱ⵵ Çϰí (THIS IS A BOOK)¿¡¼Ã³·³ ³× °³ÀÇ ¿ä¼Ò·Î µÈ ¹®ÀåÀ» Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù. ±×¸®°í (+ 5 7)ÀÇ ¸®½ºÆ®´Â ù°ÀÚ¸®´Â ±âÈ£¾ÆÅèÀÌ°í ³ª¸ÓÁö´Â ¼ö¾ÆÅèµéÀÌ È¥ÇÕµÈ °ÍÀÌ´Ù.
ÀÌ·± µ¥ÀÌÅÍ À¯Çü¸¸ º¸´õ¶óµµ LISPÀÇ ´ë»ó¼¼°è´Â ¼ö¿Í ±âÈ£·Î Ç¥ÇöµÉ ¼ö ÀÖ´Â ¸ðµç ¼¼°èÀ̹ǷÎ, ±×°ÍÀÌ µÎºÎ, °íÃßÀå, ½Ò µîÀÇ ÀڷḦ °®°í ¸¸µé ¼ö ÀÖ´Â ¿ä¸®º¸´Ù ¾ó¸¶³ª ´Ù¾çÇÑ ¿ä¸®¸¦ ¸¸µé ¼ö ÀÖÀ» °ÍÀÎÁö ´ÉÈ÷ ÁüÀÛÇØ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª ÀÌ µ¥ÀÌÅÍ À¯ÇüÀ¸·Î ¸¸µé ¼ö ÀÖ´Â ¿ä¸®´Â µÎºÎÂî°³ ¹é¹Ýó·³ ¸ÔÀ» ¼ö´Â ¾ø´Ù. ±×°ÍÀº Áö´ÉÀÇ ¾ç½ÄÀ¸·Î¼ ¼·Ãë, ¼ÒÈÇØ »õ·Î¿î ¹®Á¦ ÇØ°á¿¡ Ȱ¿ëµÉ ¼ö ÀÖ´Â Á¤º¸À̸ç Áö½ÄÀÌ´Ù.
¿ì¸®´Â LISPÀÇ µ¥ÀÌÅÍ À¯Çü¿¡¼ ³í¸®Àû ¿øÀÚ·Ð(Logical Atomism)°ú Èí»çÇÑ ¼¼°è°üÀ» ¹ß°ßÇÏ°Ô µÈ´Ù. ¼¼°è´Â ¿øÀÚÀû »ç½ÇµéÀÇ ÃÑüÀÌ°í ¿øÀÚÀû »ç½ÇÀº ¿øÀÚ ¸íÁ¦¿¡ ´ëÀÀÇϹǷΠ¿øÀÚ¸íÁ¦µéÀÇ °áÇÕÀ¸·Î ¼¼°è¸¦ ±â¼úÇÒ ¼ö ÀÖ´Ù´Â ³í¸®Àû ¿øÀÚ·ÐÀº ¾ÆÅèÀÇ »ý°¢°ú ±× ¿ë¾îºÎÅÍ ºñ½ÁÇÏ´Ù. ¹°·Ð LISP¿¡¼´Â ¿øÀÚ¸íÁ¦¸¦ ±âº»´ÜÀ§·Î »ïÁö´Â ¾Ê¾ÒÀ¸³ª, ¼¼°è´Â ±× ¾î¶² ±âº»´ÜÀ§µé°ú ±×µéÀÇ °áÇÕ¿¡ ÀÇÇØ ±â¼úµÉ ¼ö ÀÖ´Ù´Â »ý°¢ÀÌ À¯»çÇϱ⠶§¹®ÀÌ´Ù. ´Ù¸¸ ¿©±â¼´Â ±× ±âº»´ÜÀ§°¡ ¾ÆÅèÇ¥Çö°ú ¸®½ºÆ® Ç¥ÇöÀ¸·Î ¹Ù²î¾úÀ» »ÓÀÌ´Ù.
±×·± ´ÙÀ½ ¿ì¸®´Â LISPÀÇ ¸ðµç ÇÁ·Î±×·¥ÀÌ ÇÔ¼ö(functions)¶ó´Â Á¡¿¡ ÁÖ¸ñÇÒ Çʿ䰡 ÀÖ´Ù. Rudolf Carnap ÀÌ °üÇ×¾î(functor)¿Í ¼ú¾î(predicate)¸¦ ¾ö¹ÐÈ÷ ±¸ºÐÇÑ °ÍÀÌ »ó±âµÈ´Ù. °¡·É, ´õÇϱâ¿Í ¾Æ¹öÁö¸¦ ´ÙÀ½°ú °°ÀÌ ±â·ÏÇß´Ù°í ÇÏÀÚ.
1) Plus (a, b) ;
a ´õÇϱâ b
2) Father (a, b) ;
a ´Â b ÀÇ ¾Æ¹öÁö´Ù.
¾çÀÚ´Â ¿ÜÇüÀÌ ºñ½ÁÇϱ⠶§¹®¿¡ ´Ù °°Àº ¸íÁ¦·Î »ý°¢Çϱ⠽¬¿ì³ª 2)´Â ÁøÀ§¸¦ °¡¸± ¼ö ÀÖ´Â ¸íÁ¦À̰í 1)Àº ÁøÀ§¸¦ ³íÇÒ ¼ö ¾ø´Â ÇÔ¼öÀÏ »ÓÀÌ´Ù. ¸íÁ¦ÀÇ °æ¿ì´Â ¸»ÀÌ ÀÏ´Ü ³¡³µÀ¸³ª ÇÔ¼öÀÇ °æ¿ì´Â ¾ÆÁ÷ ¸»ÀÌ ¸Î¾îÁöÁö ¾Ê´Â ´À³¦ÀÌ´Ù. Áï 'a ´õÇϱâ b ´Â c ´Ù' ¶ó°í ÇØ¾ß ¸»ÀÌ ³¡³ª ¸íÁ¦·Î µÈ´Ù. ¿©±â¼ c ´Â 'a ´õÇϱâ b' ÀÇ °ªÀ̶ó°í ÇÑ´Ù. À̸¦ ÀϹÝÈÇÏ¿© ¼öÇп¡¼ 'y=f(x)'¸¦ Á¤ÀÇÇÔ¿¡ ÀÖ¾î¼ y ´Â x ÀÇ ÇÔ¼ö°ªÀ̶ó ÇÏ¿© y ÀÇ ¿µ¿ªÀ» Ä¡¿ª(range)À̶ó°í Çϰí x ÀÇ ¿µ¿ªÀ» ½Ã¿ª(domain)À̶ó ÇÑ´Ù. LISPÀÇ ¸ðµç ÇÁ·Î±×·¥¿¡¼´Â ¹Ù·Î ÀÌ·± ÇÔ¼ö¿Í ÇÔ¼ö °ªÀÇ °ü°è¸¦ Ȱ¿ëÇÏ¿´´Ù. ¿¹¸¦ µé¾î,
*(+ 5 7) ;
5+7 À̰í À̸¦ ½Ä(form)À̶ó°í ÇÑ´Ù.
12 ;
=12 À̸ç À̰ÍÀº À½ÄÀÇ Æò°¡(evaluation)´Ù.
*(+ 3 9 5) ;
3+9+5
17 ;
=17
LISP´Â À§ÀÇ º¸±â¿¡¼Ã³·³ ÇÔ¼ö¸¦ ¸®½ºÆ®·Î Á¦½ÃÇϸé, Áï °ýÈ£¸¦ ´ÝÀ¸¸é ±× ÇÔ¼ö°ªÀÌ ³ª¿Â´Ù. À̸®ÇÏ¿© ¸¶Ä¡ ¹¯°í ´ë´äÇÏ´Â Çü½Äó·³ º¸ÀδÙ. À§ÀÇ ¿¹ *(+ 5 7) ¿¡¼ ¸Ç ¾ÕÀÇ º°Ç¥´Â ¹«¾ùÀΰ¡¸¦ ŸÀÌÇÁ ÇØÁֱ⸦ ±â´Ù¸®´Â Ãʱâ»óÅ ¶ó°í ÇϰÚÀ¸¸ç °ýÈ£ ¿°í ¸Ç ùÀÚ¸® +´Â °üÇ×¾î·Î¼ À̸¦ ÀýÂ÷¸í(procedure name)À̶ó°í ÇÑ´Ù. ´ÙÀ½¿¡ ÄÀ» ¶¼¾î ±â¼úÇÑ 5¿Í 7Àº °¢±â ³íÇ×(argument)À» ÀÌ·é´Ù. ±×¸®°í ¸¶Áö¸·À¸·Î °ýÈ£¸¦ ´Ý°í ½ÄÀ» ¸¶¹«¸®ÇÏ¸é ±× ½Ä¿¡ ´ëÇÑ Æò°¡ 12°¡ ³ªÅ¸³´Ù. »ê¼ú¿¡¼ + ´Â µÎ °³ÀÇ ³íÇ× »çÀÌ¿¡ ³õ¾ÒÀ¸³ª LISP¿¡¼´Â ¸®½ºÆ®ÀÇ Ã¹ ÀÚ¸®¸¦ ÀýÂ÷¸íÀ¸·Î ÇÑ ´ÙÀ½ À§¿¡¼Ã³·³ µÑ ÀÌ»óÀÇ ³íÇ×À» Á¦½ÃÇÑ´Ù. ¿©±â¼ ÀýÂ÷¸íÀÎ '+' ÀÚü°¡ ±âÈ£¾ÆÅèÀÓÀ» ÁÖ¸ñÇØ º¼ Çʿ䰡 ÀÖ´Ù. ¾ÕÀÇ ¿ä¸® ºñÀ¯¿¡¼ µ¥ÀÌÅÍ ´ë»óÀÎ µÎºÎ³ª ½Ò µî°ú ÀýÂ÷¸¦ Áö½ÃÇÏ´Â ¿ä¸®¹ýÀ» ±¸ºÐÇߴµ¥ ÀýÂ÷¸í ÀÚüµµ µ¥ÀÌÅÍ À¯ÇüÀÇ Çϳª°¡ µÇ¾ú±â ¶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î ÀýÂ÷µµ ÀÏÁ¾ÀÇ µ¥ÀÌÅÍ À¯ÇüÀ¸·Î °£ÁֵȴÙ.
ÄÄÇ»ÅͰ¡ Çü½Ä°ÔÀÓÀ» ÇÏ´Â ½Ã½ºÅÛÀ̶ó´Â °ÍÀ» »ó±âÇØ º¸¸é¼ LISPÀÇ ±¸Á¶¸¦ »ìÇDZâ·Î ÇÑ´Ù. LISP´Â ±âº» ÅäÅ«µéÀ» °®Ãß°í ÀÖÀ¸¸ç À̵éÀ» ´Ù·ç´Â ¿©·¯ °¡Áö ±ÔÄ¢µéÀÌ ¸¶·ÃµÇ¾î ÀÖ´Ù. LISP¿¡´Â ¾Õ¼ »ìÆìº» »ê¼úÀÇ ´õÇϱ⠱âÈ£ +, »©±â ±âÈ£ -, °öÇϱ⠱âÈ£ *, ³ª´©±â ±âÈ£ /¤ý=¤ý<¤ý> µî°ú ´õºÒ¾î ¾Æ¶óºñ¾Æ ¼ýÀÚµéÀÌ ÀÖ¾î ¼öÇÐÀû Ç¥ÇöµéÀ» ´Ù·ê ¼ö ÀÖ°í ¾ËÆÄºª°ú °¢Á¾ ±âÈ£µéÀÌ Àֱ⠶§¹®¿¡ ¿µ¾î µîÀÇ ÀÏ»ó¾ð¾îµµ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª LISPÀÇ ¹®¹ýÀº ÀÏ»ó¾ð¾îÀÇ °æ¿ì¿Í ´Þ¸® ÀΰøÀûÀ¸·Î ¾ö¹ÐÈ÷ ±ÔÁ¤µÇ¾î ÀÖ´Ù. Àå±â¿¡¼ ±Ã, Â÷, ¸¶, Æ÷, »ó, Á¹ µîÀÌ °¢±â Çึ ±ÔÄ¢ÀÌ ´Ù¸£µíÀÌ, ¼·Î ´Þ¸® ¾²ÀÌ´Â ±ÔÄ¢ÀÇ ÅäÅ«µéÀÌ ¸¹ÀÌ ³»ÀåµÇ¾î ÀÖ´Ù. ±×Áß¿¡´Â ±âÈ£µéÀÇ °ªÀ» ¹Ù²Ù´Â ±âÈ£, »õ·Î¿î ÀýÂ÷¸¦ ±ÔÁ¤ÇÏ´Â ±âÈ£, »õ·Î¿î ¿ä¼Ò¸¦ ¸®½ºÆ® ¾È¿¡ Ãß°¡ÇÏ´Â ±âÈ£ µî »ç¿ëÀÚµéÀÌ ÀÚÀ¯·Ó°Ô ¸¸µé¾î ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÀåÄ¡°¡ µÇ¾î Àֱ⠶§¹®¿¡, LISP·Î Á¢±ÙÇÒ ¼ö ÀÖ´Â ¼¼°è´Â ¹«Ã´ ³Ð°í, ´Ù¸¥ ÄÄÇ»ÅÍ ¾ð¾îµéº¸´Ù âÀǼºÀ» ¹ßÈÖÇÒ ±âȸ°¡ ¸¹Àº ÀåÁ¡À» Áö´Ï°í ÀÖ´Ù. ±×¸®ÇÏ¿© Àå±â¸¦ µÎ·Á¸é ¿ì¼± Çึ±ÔÄ¢ºÎÅÍ ÀÍÇô¾ß ÇϵíÀÌ, LISP¶ó´Â Çü½Ä°ÔÀÓÀ» ÇÏ·Á¸é ±âº» ÅäÅ«µéÀÇ ±ÔÄ¢ºÎÅÍ ¾Ë¾Æ¾ß ÇÑ´Ù.
¿ì¼±, µðÁöÅÐ ÄÄÇ»ÅͰ¡ Àбâ¿Í ¾²±âÀÇ µ¹¸²À» ÇÑ´Ù´Â Á¡°ú ¿¬°èÇÏ¿©, LISP°¡ °®Ãß°í ÀÖ´Â ±âº»ÀûÀÎ ÀýÂ÷ ÅäÅ«µé·ÎºÎÅÍ »ìÆìº¸ÀÚ. ±×·¯¸é ÀÚ·áµéÀ» ²ôÁý¾î³»´Â ÀýÂ÷¿Í ÀÚ·áµéÀ» Áý¾î³Ö´Â ÀýÂ÷, ±×¸®°í ÀڷḦ Áö´Ñ »õ·Î¿î °ÍÀ» ¸¸µé¾î³»´Â ÀýÂ÷, ÀÌ·¸°Ô ¼¼ °¡Áö Á¾·ùÀÇ ÀýÂ÷°¡ ÇÊ¿äÇѵ¥ ÀÌ·± ÀýÂ÷¸¦ ¼öÇàÇÏ´Â ÀÚ¸¦ °¢±â ÀдÂÀÌ(Reader), ¾²´ÂÀÌ(Writer), ¿«´ÂÀÌ(Constructors)¶ó°í Çϸç ÀÌ ¼¼ °¡Áö ÀýÂ÷¸¦ ÃÑĪÇÏ¿© 'Á¢±ÙÀýÂ÷'(Access Procedures)¶ó ÇÑ´Ù. ÀÌ ¼¼ °¡Áö À¯ÇüÀÇ ÀýÂ÷ Áß¿¡¼ °¡Àå ±âº»ÀûÀÎ °Í ¸î °¡Áö¸¸ °ËÅäÇØ º½À¸·Î½á LISPÀÇ ±¸Á¶¸¦ ¾Ë¾Æ º¸µµ·Ï ÇÏÀÚ.
LISPÀÇ °¡Àå Áß¿äÇÑ ÀÚ·á´Â ¸®½ºÆ®À̹ǷΠ¸®½ºÆ®¸¦ ÀÐ°í ¾²°í ¿«´Â ÀýÂ÷°¡ ÇÊ¿äÇÏ´Ù. ±âÃÊÀûÀÎ Àд À̵éÀº FIRST, REST, LAST, LENGTHÀÌ´Ù. FIRST´Â ¸®½ºÆ® ¾ÈÀÇ Ã¹Â° ¿ä¼Ò¸¦ Àо¶ó´Â ±âÈ£À̰í REST´Â ù° ¿ä¼Ò¸¦ »©³½ ´ÙÀ½ ³ª¸ÓÁö ¸®½ºÆ®¸¦ Àо¶ó´Â ±âÈ£À̸ç LAST´Â ¸¶Áö¸· ¿ä¼Ò¸¸À» Á¦¿ÜÇÑ ¸ðµç ¿ä¼Ò¸¦ »©³½ ¸®½ºÆ®¸¦ Àо¶ó´Â ±âÈ£ÀÌ´Ù. ±×¸®°í LENGTH´Â ÇϳªÀÇ ¸®½ºÆ® ¾ÈÀÇ ¿ä¼ÒµéÀÇ ¼ö¸¦ Àо¶ó´Â ±âÈ£ÀÌ´Ù. ¿©±â ±âÈ£µéÀº ¿µ¾î·Î µÇ¾î ÀÖÀ¸¹Ç·Î ÀÌÇØÇϱ⠽¬¿ì³ª, Ãʱ⿡ LISP¸¦ IBM 704¿¡ Àû¿ëÇϵµ·Ï ¸¸µé¾úÀ» ´ç½Ã¿¡´Â FIRST¸¦ CAR·Î, ±×¸®°í REST¸¦ CDR·Î »ç¿ëÇß´Ù. ¿À´Ã³¯µµ ÀÌ Ç¥±â¹ýÀ» ±×´ë·Î »ç¿ëÇÏ´Â ÇÁ·Î±×·¡¸ÓµéÀÌ ¸¹´Ù.
±×·±µ¥ ÀÌ·± Á¾·ùÀÇ ³íÀÇ¿¡¼ ¿ì¸®´Â ±âÈ£¿Í ±âÈ£ÀÇ °ªÀ» ±¸º°ÇÒ Çʿ䰡 ÀÖ´Ù. °¡·É, °í·Á´ëÇлýÀ̶ó´Â ±âÈ£¿Í °í·Á´ëÇлýÀ» ±¸º°Çϱâ À§ÇØ, ÀüÀÚ¸¦ '°í·Á´ëÇлý'À̶ó°í ÀÏ»ó¾ð¾î¿¡¼µµ ´Þ¸® Ç¥ÇöÇÏ´Â ¹æ½ÄÀ» ¿ì¸®´Â LISP¿¡¼µµ ¹ß°ßÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, º½¤ý¿©¸§¤ý°¡À»¤ý°Ü¿ïÀÇ »ç°èÀýÀ» S ¶ó°í ÇÏ¿´À» °æ¿ì, S ´Â º½ ¿©¸§ °¡À» °Ü¿ï·Î µÈ ¸®½ºÆ®¸¦ °ªÀ¸·Î ÇÏÁö¸¸, 'S ó·³ ¹®ÀÚ³ª ¸®½ºÆ® ¿ÞÆí À§ÂÊ¿¡ µû¿ÈÇ¥¸¦ ºÙÀÌ¸é ±× °ªÀº ±× ¹®ÀÚ ÀÚü°¡ µÈ´Ù. ±×¸®°í 'S ¸¦ º½ ¿©¸§ °¡À» °Ü¿ïÀÇ ¸®½ºÆ®·Î ¾ÕÀ¸·Î »ç¿ëÇϰڴÙ'°í ÇÏ°í ½ÍÀ¸¸é Setf¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
*(SETF S' (SPRING SUMMER FALL
WINTER))
(SPRING SUMMER FALL WINTER)
*S
(SPRING
SUMMER FALL WINTER)
¿©±â¼ ¿øÃʱâÈ£ SETF´Â SET Field¸¦ ÁÙÀÎ ¸»ÀÌ´Ù. ÀÌ ±âÈ£¸¦ Ȱ¿ëÇϸé ÀÌó·³ ÀÓÀÇÀÇ »õ ±âÈ£ S ¸¦ »ç¿ëÇÏ¿© ´ë½ÅÇÏ°í ½ÍÀº ±âÈ£µéÀ» ±× °ªÀ¸·Î »ïÀ» ¼ö ÀÖ´Ù. ±×·¯³ª ¿©±â¼ ÁÖÀÇÇÒ °ÍÀº S ÀÇ °ªÀº ¸®½ºÆ® ±âÈ£À̱⠶§¹®¿¡ ¸®½ºÆ® ¾Õ°ýÈ£ ÀºÎºÐ¿¡ µû¿ÈÇ¥¸¦ ºÙ¿©¾ß Çϸç À̸¦ ºÙÀÌÁö ¾ÊÀ¸¸é À߸øÀ̶ó´Â Ç¥½Ã°¡ ³ª¿Â´Ù.
*(SETF S (SPRING SUMMER FALL
WINTER))
ERROR:
Undefined function: SPRING
while evaluating: (SPRING
SUMMER FALL WINTER)
LISP¿¡¼´Â Åë»óÀûÀÎ °æ¿ì, ÁöÁ¤µÈ ÀýÂ÷¸¦ »ç¿ëÇϱâ ÀÌÀü¿¡ ÁÂÃøÀ¸·ÎºÎÅÍ ¿ìÃøÀ¸·Î ¸ðµç Çü½ÄµéÀÇ ¸ðµç ³íÇ×À» Æò°¡ÇÑ´Ù. (+ (* 5 2) (/10 2)) ÀÇ °æ¿ì, µÎ °³ÀÇ ³íÇ× (* 5 2) ¿Í (/10 2) ¸ðµÎ ÁÂÃøÀ¸·ÎºÎÅÍ ¿ìÃøÀ¸·Î Æò°¡ÇÏ°í ±× °÷¿¡ + ÀÇ ´õÇϱâ ÀÛ¾÷À» ÇÑ´Ù. SETF ´Â ÀÌ·± ±ÔÄ¢ÀÇ Áß¿äÇÑ ¿¹¿ÜÀÌ´Ù. ±× ù° ³íÇ×Àº Æò°¡µÇ´Â °ÍÀÌ ¾Æ´Ï°í ±× ±âÈ£ÀÇ °ªÀ» Á¦°øÇÏ´Â µÑ° ³íÇ×ÀÌ Æò°¡µÇ±â ¶§¹®ÀÌ´Ù. ±×·±µ¥ ¸®½ºÆ® ¾ÈÀÇ ¸®½ºÆ®·Î Á¦½ÃµÈ(SPRING SUMMER FALL WINTER) ¾È¿¡¼ ù° Ç×Àº ±× ¸®½ºÆ®ÀÇ ´Ù¸¥ Ç×µéÀ» Æò°¡ÇÏ´Â ÇÔ¼ö¿©¾ß ÇÑ´Ù°í º¸´Âµ¥ ±×°ÍÀÌ Á¤ÀǵÇÁö ¾Ê¾Æ À߸øµÇ¾ú´Ù´Â °ÍÀÌ´Ù. À§ÀÇ ÀдÂÀÌ(reader) µéÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù.
*(FIRST S)
SPRING
*(FIRST'
S)
ERROR:
CAR OR CDR OF NON-LIST OBJECT: S
*(S)
ERROR:
Undefined
function: S
while evaluating: (S)
*(REST S)
(SUMMER
FALL WINTER)
*(LAST S)
(WINTER)
*(LENGTH
S)
4
*(FIRST (REST S))
SUMMER
LISPÀÇ ÁøÇàÀÌ ¹®´ä½Ä ´ëÈ·Î º¸ÀÌ´Â °ÍÀº *Ç¥ ³¿¡ Á¦½ÃµÈ ÇÔ¼öÇüÀ» ¹¯´Â °ÍÀ̶ó°í ÇÏ¸é ¹ØÀÇ ³¿¡ Á¦½ÃµÇ´Â ´ë´äÀ¸·Î °£ÁÖÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ±×¸®°í À߸ø ¹°¾úÀ» °æ¿ì¿¡µµ Ä£ÀýÇÏ°Ô ¹«¾ùÀÌ ¾î¶»°Ô À߸øµÇ¾ú´Ù°í ÁöÀûÇØ ÁֹǷΠÆíÇÏ°Ô ¹°À» ¼ö ÀÖ´Ù. ¹°·Ð À§ÀÇ Setf ÀÇ °æ¿ìó·³ ¿¹¿ÜÀûÀ¸·Î ¾²±âµµ ÇÏ°í ¾ÕÀ¸·Î »ìÆìº¸°ÚÁö¸¸ LISP¿¡µµ ¹¯´Â Çü½ÄÀÌ µû·Î ÀÖ±â´Â ÇÏÁö¸¸ ÀüüÀûÀ¸·Î ÇÔ¼ö¿Í ±× °ªÀÇ ±â¹ýÀÌ ´ëÈü¸¦ ÀÌ·é´Ù´Â Á¡ÀÌ Ã¶ÇÐÀû ´ëÈÀÇ °¡´É¼ºµµ ±â´ëÇØ º¼ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù.
ƯÈ÷ ±âÈ£ÀÇ °ªÀ» ¹¯´Â ±âÈ£¿Í ±× ±âÈ£ ÀÚü¸¦ ¹¯´Â ±âÈ£ÀÇ ±¸º°Àº ¸Å¿ì Áß¿äÇÏ´Ù. À§ÀÇ ¼³¸í¿¡¼´Â ÀÏ»ó¾ð¾î¿¡¼µµ µû¿ÈÇ¥·Î ±¸º°ÇØ¿À´ø ¹Ù¶ó°í °£´ÜÈ÷ ¾ð±ÞÇßÀ¸³ª ½Ç»ó Çй®¿¬±¸³ª ÀÏ»ó»ýȰ¿¡¼ ÀÌ ±¸ºÐÀÌ Àß µÇÁö ¾Ê¾Æ ¸¹Àº È¥¶õÀÌ ÀÖ¾î ¿Ô´Ù. ±×¸®ÇÏ¿© Çö´ë ºÐ¼®Ã¶ÇеéÀº ´ë»ó¾ð¾î(object language)¿Í ±× ´ë»ó¾ð¾î¿¡ °üÇÑ ¾ð¾î·Î¼ÀÇ ¸ÞŸ¾ð¾î(meta-language)¸¦ ±¸ºÐÇÏ¿´´Ù. ÀÌ ±¸ºÐÀ» ¸øÇÏ¿´À» °æ¿ì¿¡ ¸¹Àº È¥¶õÀÌ ¾ß±âµÈ´Ù. ¿ì¸®´Â ±× ±¸ºÐ¿¡ ÀǰÅÇÏ¿© ÇØ°áÇÑ ¹®Á¦µé ÁßÀÇ Çϳª·Î¼ À̸¥¹Ù ¿¡ÇǸ޴ϵ¥½ºÀÇ ¿ª¸®(Epimenides' Paradox)¸¦ ²ÅÀ» ¼ö ÀÖ´Ù.
À§¿¡¼´Â LISP°¡ ¸¶·ÃÇϰí ÀÖ´Â ¿øÃÊÀûÀÎ Àд À̵é·Î¼ FIRST, REST µîÀ» ¸î °¡Áö »ìÆìº¸¾Ò°í, ÀÌÁ¦´Â ¿øÃÊÀûÀÎ ¿«´Â ÀÌ(constructor) ·Î¼ CONS ÀÇ ±â´ÉÀ» ¿ì¼± °ËÅäÇØ º¸µµ·Ï ÇÑ´Ù. CONS´Â CONStructÀÇ ÁÙÀÎ ¸»·Î¼ ÀÌ¹Ì ÀÖ´Â ÇϳªÀÇ ¸®½ºÆ® ¾È¿¡ ¿ä¼Ò¸¦ ´ÙÀ½°ú °°ÀÌ Ãß°¡ÇÒ ¶§ »ç¿ëÇÑ´Ù.
*(CONS' A'(B C))
(A B C)
±×¸®°í ¿ì¸®´Â À̰ÍÀ» ±âÈ£ÀÇ °ªÀ» ¹Ù²Ù´Â ¿øÃʱâÈ£ SETF ¿Í °áÇÕÇØ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
*(SETF L'(Y Z))
(Y Z)
*L
(Y
Z)
*(SETF L (CONS; X L))
(X Y Z)
*L
(X
Y Z)
±×·±µ¥ LISP´Â ¿øÃÊÀûÀÎ ÀýÂ÷µéÀ» °®Ãß°í ÀÖÀ» »Ó ¾Æ´Ï¶ó »õ·Î¿î ÀýÂ÷µéÀ» ¸¸µå´Â ÀýÂ÷±îÁöµµ °®°í Àֱ⠶§¹®¿¡ À߸øÀ» ½±°Ô °íÄ¥ ¼öµµ ÀÖ°í ±âÁ¸ÀÇ ÀýÂ÷µéÀ» ÀÌ¿ëÇØ »õ·Î¿î ÀýÂ÷¸¦ âÀÇÀûÀ¸·Î ¸¸µé¾î³¾ ¼öµµ ÀÖ´Ù. ±× Áß¿¡¼ ´Ü¼øÇÑ ÀýÂ÷ âÁ¶ÀÇ ¿øÃʱâÈ£´Â DEFUNÀÌ´Ù.
°¡·É, ¿ì¸®°¡ ¾î¶² ¸®½ºÆ®ÀÇ ¾çÂÊ °¡ÀåÀÚ¸®¿¡ ÀÖ´Â ¿ä¼Ò¸¦ »Ì¾Æ »õ·Î¿î ¸®½ºÆ®¸¦ ¸¸µç´Ù°í ÇÏÀÚ. ±×·± ÀýÂ÷°¡ LISP¿¡ ¿øÃÊÀû ÀýÂ÷·Î¼ ¸¶·ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¹Ç·Î ÀÌ¹Ì ¿øÃÊÀýÂ÷·Î °®Ãß°í ÀÖ´Â °ÍÀ» Ȱ¿ëÇØ ±×·± ÀýÂ÷¸¦ ¸¸µé¾î¾ß ÇÒ ÅÍÀε¥ ÀÌ·± ÀýÂ÷ âÁ¶ÀÇ ÀýÂ÷°¡ DEFUNÀ¸·Î ÀÌ·ç¾îÁø´Ù.
*(SETF M' (A B C D E F))
(A
B C D E F))
¿©±â¼ ù°¿ä¼Ò A ¿Í ¸¶Áö¸· ¿ä¼Ò F ¸¦ »Ì¾Æ ÇÕÇÑ (A F)¶ó´Â ¸®½ºÆ®¸¦ ¸¸µé·Á°í ÇÑ´Ù. ±×·¯¸é (CONS (FIRST M) (LAST M))À̶ó°í ÀÌ¹Ì ¾Ë·ÁÁø FIRST, LAST, CONSÀÇ ¿øÃʱâÈ£¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ±×·¯³ª À̰ÍÀÌ ¹ø°Å·Î¿ö °£ÆíÇÏ°Ô '¾çÂÊ °¡ÀåÀÚ¸® ¿ä¼Ò¸¦ »Ì¾Æ ¸®½ºÆ®¸¦ ¸¸µé¶ó'´Â ÀýÂ÷¸íÀ» YANGKA ÇÑ ¸¶µð·Î ±× ÀÏÀ» ¼öÇàÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
*(DEFUN YANGKA (M) (CONS (FIRST
M) (LAST M)))
YANGKA
*(YANGKA' (RED YELLOW GREEN BLUE))
(RED
BLUE)
¿©±â¼Ã³·³ DEFUNÀÇ »ç¿ë¿¡ µû¸£´Â ¿ä¼ÒµéÀ» ¸ð¾Æ ³õ´Â ±¸Á¶ ÆÐÅÏÀÎ Á¶Çü(Template)Àº ´ÙÀ½°ú °°´Ù.
(DEFUN <ÀýÂ÷¸í> ;
YANGKA¿Í °°Àº ÀÓÀÇÀÇ ¸íĪ
<¸Å°³º¯Ç׸í>) ;
MÀ¸·Î Ç¥½ÃµÈ º¯Ç×ÀÇ ¸íĪ
<Çü½Ä> ) ;
CONS·Î ½ÃÀ۵Ǵ Ʋ¿¡ ÇØ´ç
ÀÌ Á¶ÇüÀ» ÀϹÝÈÇÏ¸é ¸Å°³º¯Ç×¸íµµ <º¯Ç׸í 1>, <º¯Ç׸í 2>, ... µîÀ¸·Î ¿©·¯ °³ ¼³Á¤ÇÒ ¼ö ÀÖ°í Çü½Äµµ <Çü½Ä 1>, <Çü½Ä 2>, ... µîÀ¸·Î ¸¹ÀÌ ´Ù·ê ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ´Ù¾çÇÏ°Ô ÀýÂ÷󸮸¦ ÇÒ ¼ö Àֱ⠶§¹®¿¡ LISP´Â ¿øÃÊÀû ÀýÂ÷¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù´Â Á¦¾àÀ» ¹ÞÁö¸¸ ±×µéÀ» âÀÇÀûÀ¸·Î °áÇÕÇÔÀ¸·Î½á »õ·Î¿î ÀýÂ÷µéÀ» ¸¸µé ¼ö ÀÖ´Â ÀÚÀ¯ÀÇ °¡´É¼ºÀÌ ºÎ¿©µÇ¾ú´Ù°í ÇϰڴÙ.
»Ó¸¸ ¾Æ´Ï¶ó ³í¸®ÇÐÀÚ Ã³Ä¡(A. Church)°¡ °³¹ßÇÑ ¸íĪ ¾ø´Â ÇÔ¼öÀÇ Ç¥±â¹ýÀÎ Lambda Ç¥ÇöÀ» ÀÌ¿ëÇÏ¿© ÀýÂ÷¸í±îÁöµµ ¾ø¾Ö°í DEFUNÀÇ ÀýÂ÷ âÁ¶ÀÇ ±â´ÉÀ» ÇÏ´Â ±â¹ýÀ» â¾ÈÇØ LISPÀ» ´õ¿í Æí¸®ÇÑ ¾ð¾î·Î ±¸¼ºÇÏ¿´´Ù. À§ÀÇ ¾ç°¡ ¼±¹ß ¿¹¿¡¼ º»´Ù¸é DEFUN°ú YANGKAÀÇ ÀýÂ÷¸íÀ» Á¦¿ÜÇϰí (LAMBDA (M) (CONS (FIRST M) (LAST M)))¸¦ »ç¿ëÇÒ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.
LISP´Â CONS À̿ܿ¡µµ constructor ·Î¼ LIST, APPEND, REVERSE µîÀ» °®°í ÀÖ´Ù. LIST´Â ¿ä¼ÒµéÀÇ ÁýÇÕÀ¸·ÎºÎÅÍ ÇϳªÀÇ ¸®½ºÆ®¸¦ ¸¸µé °æ¿ì¿¡ »ç¿ëµÇ°í APPEND´Â µÎ °³ÀÇ ¸®½ºÆ®ÀÇ ¿ä¼ÒµéÀ» ÇϳªÀÇ ¸®½ºÆ®·Î °áÇÕÇÏ´Â µ¥ ¾²¿©Áö¸ç REVERSE´Â ¿ä¼ÒµéÀ» °Å²Ù·Î ¹è¿ÇØ ¸®½ºÆ®¸¦ ¸¸µé ¶§ »ç¿ëµÈ´Ù. ´ÙÀ½ÀÇ º¸±â°¡ À̵é constructor ÀÇ Â÷À̸¦ Àß ³ªÅ¸³» ÁØ´Ù.
*(SETF M ' (A B) N ' (C D))
(C
D) ; SETF°¡ ´Ù¼öÀÇ °ªÀ» °¡Áú ¶§´Â ¸¶Áö¸· °ª¸¸ Á¦½ÃÇÑ´Ù.
*(CONS
M N)
((A B) C D)
*(LIST M N)
((A B) (C D))
*(APPEND
M N)
(A B C D)
*(REVERSE M)
(B A)
LISPÀÇ Á¢±ÙÀýÂ÷ Áß¿¡¼ reader ¿Í constructor ÀÇ ¿øÃʱâÈ£ ¸î °¡Áö¸¦ ¼Ò°³ÇßÀ¸¸ç ±× writer ÀÇ ¿øÃÊÀû ±âÈ£µéÀº ÀÛ¾÷ÇÑ °ÍÀ» º¸°üÇÏ´Â ÀÏÀÌ´Ù. ¾ÕÀÚ¸®¿¡ ÀýÂ÷±âÈ£¸¦ »ç¿ëÇÏ´Â LISPÀÇ Ç¥±â¹ýÀº Æ÷¶õµå ³í¸®ÇÐÆÄÀÇ Ç¥±â¹ýÀ» ÀÀ¿ëÇß´Ù°í ÇϰڴÙ.
¿ì¸®´Â LISP°¡ ÇÔ¼öÇü½ÄÀ» ÃëÇϰí ÀÖÀ¸¸ç °üÇ×¾î´Â ¼ú¾î¿Í ±¸ºÐµÈ´Ù´Â Á¡À» ¾Õ¿¡¼ ÁöÀûÇÑ ¹Ù ÀÖ´Ù. ±×·¯¸é ¿©±â¼´Â ¼ú¾î¿Í ¼ú¾î³í¸®´Â ¾î¶»°Ô ´Ù·ç¾îÁö°í Àִ°¡? LISP¿¡¼´Â ¼ú¾îµµ ÇÔ¼öó·³ ´Ù·ç±â À§ÇØ ¼ú¾î¸¦ ÂüÀ̳ª °ÅÁþÀ» »êÃâÇÏ´Â ÀýÂ÷·Î Ãë±ÞÇÑ´Ù. À̰ÍÀº ¼ú¾î°¡ ³íÇ×°ú °áÇÕÇÏ¿© ¸íÁ¦°¡ µÇ°í ¸íÁ¦´Â Âü ¾Æ´Ï¸é °ÅÁþÀÇ Áø¸®°ªÀ» °®´Â Á¡¿¡ Âø¾ÈÇÑ °ÍÀÌ´Ù. ±×¸®ÇÏ¿© LISP¿¡¼´Â ¿ì¼± ÂüÀ» T, °ÅÁþÀ» NILÀ̶ó°í Çϰí ÀÌ Áø¸®°ªÀ» ¹Ù²Ù´Â ¿øÃʱâÈ£¸¦ NOTÀ¸·Î ±ÔÁ¤ÇÏ¿© ³í¸®ÇÐÀÇ Áø¸®Ç¥¹æ½ÄÀ» ÅÃÇÏ¿´´Ù. ¿©±â¼ Áß¿äÇÑ °ÍÀº T ÀÇ ±âÈ£µµ T À̰í T ÀÇ °ªµµ T À̸ç NILµµ ¸¶Âù°¡Áö·Î ±× ±âÈ£¿Í °ªÀÌ ¸ðµÎ NILÀ̶ó´Â Á¡ÀÌ´Ù.
¼ú¾î¸¦ T ³ª NILÀ» °Ë»çÇÏ´Â ÀýÂ÷·Î º¸°Ô µÇ¸é ±× °Ë»çÀÇ ±âÁØÀÌ µÇ´Â '°°´Ù'´Â ¼ú¾îÀÇ Àǹ̸¦ ¹àÈú Çʿ䰡 ÀÖ´Ù. ÀüÅë³í¸®Çп¡¼ ³í¸®Àû »ç°íÀÇ ±âº»¿ø¸®·Î¼ µ¿ÀÏ·üÀ» ²Å¾Æ¿Â °ÍÀ̳ª, ¾î¸°À̵éÀÇ »ç°í Àü°³°úÁ¤¿¡¼ ¹«¾ùÀÌ ¹«¾ù°ú °°´Ù°Å³ª °°Áö ¾Ê´Ù´Â °ÍÀ» °¡¸®´Â ÀϺÎÅÍ ÇØ¿Â °ÍÀº µ¿ÀÏ·üÀÇ Á߿伺À» Àß ¼³¸íÇØ ÁØ´Ù. ¹«¾ùÀÌ ¹«¾ù°ú °°´Ù°í ÇÒ ¶§ ¾î¶² Ãø¸é¿¡¼ °°Àº °ÍÀÎÁö¸¦ ¹àÇô¾ß ÇÑ´Ù. À̸¦ ¹àÈ÷Áö ¾Ê°í ¼·Î ´Ù¸¥ ±âÁØ¿¡ ÀǰÅÇÏ¿© °°´Ù°Å³ª °°Áö ¾Ê´Ù°í ÇÏ¿´À» °æ¿ì, »ç°íÀÇ È¥¶õÀ» ÀÏÀ¸Å°°í ¶§·Î´Â ¾µµ¥¾ø´Â ³íÀïÀ» ÇϰԵµ µÈ´Ù. Àǹ̷ÐÀÇ ¹®Á¦·Î¼ '»ûº°°ú Àú³áº°ÀÌ °°´Ù'´Â ¿¹°¡ ³íÀÇÀÇ ´ë»óÀ¸·Î ÀÚÁÖ °Å·ÐµÇ¾î¿Â °Íµµ ±×µéÀÌ °°´Ù´Â ±âÁØÀ» ¹àÇô¾ß Ç߱⠶§¹®ÀÌ´Ù. ±×µéÀÌ Áö½ÃÇÏ´Â ¹Ù°¡ °°´Ù´Â ¿Ü¿¬Àû µ¿Àϼº°ú ±× °³³äÀÇ ³»Ç¥°¡ °°´Ù´Â °ÍÀº ¾ö¿¬È÷ ±¸ºÐµÇ¾î¾ß ÇÒ °ÍÀÌ´Ù.
»ê¼úÀÇ '2 + 3 = 5'¿¡¼ '+'´Â °üÇ×¾î(functor) ÀÎ µ¥ ºñÇØ '='´Â ¼ú¾î·Î ±¸ºÐµÇ¸ç ÈÄÀÚ´Â '°°´Ù'´Â ¼ú¾î¿¡ ÇØ´çµÈ´Ù. ±×°ÍÀº ÀÏ»ó¾ð¾î·Î 'µÑ ´õÇϱ⠼ÂÀº ´Ù¼¸°ú °°´Ù'·Î Ç¥ÇöµÈ´Ù. ±×·¯³ª 'µÑ ´õÇϱ⠼Â'Àº '´Ù¼¸'°ú °°Áö ¾Ê´Ù°í ÇÒ ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î °°Àº °ÍÀ» ³ªÅ¸³»´Â ±âÈ£¸¦ ±¸º°ÇÒ Çʿ䰡 ÀÖ´Ù. LISP´Â µ¥ÀÌÅÍ À¯ÇüÀ¸·Î¼ ¾ÆÅè°ú ¸®½ºÆ®, ±×¸®°í ¾ÆÅèÀº ¼ö¿Í ±âÈ£¸¦ ±¸ºÐÇÏ¿´À¸¹Ç·Î, '°°´Ù'´Â ¼ú¾îµµ ÀÌ·± Ç¥Çö°ú °ü·ÃÇÏ¿© '°°´Ù'´Â ¼ú¾î¸¦ ´Þ¸® »ç¿ëÇÑ´Ù. ±×¸®°í ÀÌ ¼ú¾î¸¦ ÇÔ¼öÇüÀ¸·Î Çϱâ À§ÇØ ¹¯´Â ¹æ½ÄÀ» ÃëÇÏ¿´´Ù. EQLÀº µÎ ³íÇ×ÀÇ °ªÀÌ °°Àº ±âÈ£(°°Àº À¯Çü) ÀÎÁö, ±×¸®°í = Àº µÎ ³íÇ× °ªÀÌ °°Àº ¼öÀÎÁö¸¦ ¹¯´Â ¿øÃʱâÈ£·Î °£ÁֵǾú´Ù.
*(EQUAL (+ 2 3) 5)
T
*(=(+2
3 ) 5)
T
*(EQL 4 4.0) ;
¼öµéÀÌ ´Ù¸¥ À¯ÇüÀ̱⠶§¹®ÀÌ´Ù.
NIL
*(= 4 4.0) ;
´Ù¸¥ À¯ÇüÀÇ ¼öÀ̳ª = ¸¦ ¸¸Á·½ÃŲ´Ù.
T
´ÙÀ½À¸·Î LISP°¡ Áö´Ñ µ¥ÀÌÅÍ À¯ÇüÀ» °Ë»çÇϱâ À§ÇÑ ¿øÃʱâÈ£µé·Î¼, ¾ÆÅèÀ» ¹¯´Â ATOM, ¼ö¸¦ ¹¯´Â NUMBERP, ±âÈ£¸¦ ¹¯´Â SYMBOLP, ±×¸®°í ¸®½ºÆ®¸¦ ¹¯´Â LISTP µîÀÌ ÀÖ°í ¼ö Áß¿¡¼µµ ¿µÀÎÁö¸¦ ¹¯´Â ZEROP, ¾çÀÇ ¼öÀÎÁö¸¦ ¹¯´Â PLUSP, À½ÀÇ ¼öÀÎÁö¸¦ ¹¯´Â MINUSP, Ȧ¼ö¸¦ ¹¯´Â ODDP µîÀÌ ÀÖ´Ù. ±×¸®°í ¸®½ºÆ®µéÀ» °Ë»çÇÏ´Â °ÍÀ¸·Î¼ °¡Àå Áß¿äÇÑ ¿øÃÊÀû ±âÈ£´Â NULL°ú CONSP¿Í MEMBERÀÌ´Ù.
¾î¶² °ÍÀÌ °ø ¸®½ºÆ®(empty list) ÀÎÁö¸¦ ¾Ë¾Æ º¸·Á¸é NULLÀ» »ç¿ëÇÑ´Ù. µû¶ó¼ NULLÀº ³íÇ×ÀÌ °ø ¸®½ºÆ®Àΰ¡ ÇÏ´Â ¹°À½À¸·Î Ç®À̵ȴÙ. ¾î¶² ¸®½ºÆ®°¡ °ø ¸®½ºÆ®°¡ ¾Æ´Ï¶ó¸é ±×°ÍÀº ¸í½ÃÀûÀÌµç ¾Ï¹¬ÀûÀÌµç ¾î´À ÇÑ CONSÀÇ °á°ú·Î °£ÁֵȴÙ. ±×¸®ÇÏ¿© ³íÇ×ÀÌ CONSÀÏ ¼ö ÀÖ´Â °ÍÀΰ¡¸¦ ¹¯´Â CONSP´Â ¸®½ºÆ® °Ë»ç¿¡¼ ÇʼöÀûÀÌ´Ù. ±×¸®°í ´õ¿í ÁÖ¸ñÇÒ ¸¸ÇÑ °ÍÀº MEMBERÀÌ´Ù. À̰ÍÀº ù° ³íÇ×ÀÌ ±âÈ£ÀÌ°í ±×°ÍÀÌ µÑ° ³íÇ×ÀÌ µÇ´Â ¸®½ºÆ®ÀÇ ¿ø¼ÒÀÎÁö¸¦ ¾Ë¾Æº¸±â À§ÇØ »ç¿ëÇÏ´Â ¼ú¾îÀÌ´Ù. ±×¸®°í ù°ÀÇ ±âÈ£´Â µÑ° ¸®½ºÆ®ÀÇ ÃÖ»óÀ§ ¼öÁØÀÇ ¿ø¼Ò(a top-level element)À̾î¾ß ÇÑ´Ù.
*(MEMBER' MOTHER' ((FATHER SON)
(MOTHER DAUGHTER)))
NIL ;
¿©±â¼ ÃÖ»óÀ§ ¼öÁØ ¿ø¼Ò´Â (FATHER SON)¿Í (MOTHER DAUGHTER)À̸ç MOTHER´Â
±× ¿ø¼ÒÀÇ ¿ø¼ÒÀÌ´Ù.
°¡·É, KWA-ILÀÇ °ªÀº (FRUIT APPLE)À̶ó°í
Çϰí 3SSANGÀÇ °ªÀº((SPORT RIDING) (FRUIT APPLE) (VEGETABLE CARROT))¶ó°í
°¡Á¤ÇÏÀÚ. ÀÌ·± °¡Á¤¿¡¼ ´ÙÀ½À» º¸ÀÚ.
*(MEMBER KWA-IL 3SSANG)
NIL
;
(EQUAL KWA-IL' (FRUIT APPLE))ÀÇ °ªÀº T ÀÌÁö¸¸ MEMBERÀÇ °Ë»ç´Â EQLÀ» »ç¿ëÇϱâ
¶§¹®ÀÌ´Ù.
*(MEMBER KWA-IL 3SSANG :
TEST' EQUAL)
((FRUIT APPLE) (VEGETABLE CARROT)) ; ˤ˂
:TEST ¸»ÀÌ EQL·Î ÇÏÁö¸»°í EQUAL·Î °Ë»ç¸¦ ÁöÀûÇßÀ¸¹Ç·Î.
¼ú¾îµéÀ» °áÇÕÇÏ´Â ÀýÂ÷´Â ¸íÁ¦³í¸®ÀÇ °áÇÕ»ç (connective) µéÀÇ Áø¸®Ä¡°ü°è¿¡ ´ëü·Î µû¸£°Ô µÈ´Ù. ±×·¯³ª ÀÌ¹Ì »ìÆìº¸¾ÒµíÀÌ LISPÀÇ Ç¥±â¹ýÀº Åë»óÀûÀÎ ¼öÇÐÀ̳ª ³í¸®ÇÐÀÇ °Í°ú´Â ´Þ¸® Æ÷¶õµåÇÐÆÄÀÇ °ÍÀ» ä¿ëÇϰí ÀÖ´Ù. Áï, »ê¼úÀÇ µ¡¼ÀÀº "2 + 4 + 7 + 5 + 9" ´ë½Å "(+ 2 4 7 5 9)"¸¦ »ç¿ëÇÔÀ¸·Î½á °üÇ×¾î +¸¦ ¹Ýº¹ÇÏÁö ¾Ê¾Æµµ µÇ¾ú´Ù. LISPÀÇ ¼ú¾î °áÇÕ¿¡ ÀÖ¾î¼ Æ÷¶õµå½Ä Ç¥±â¹ýÀº ´õ¿í ¶Ñ·ÇÇÏ´Ù. °¡·É, Åë»óÀûÀÎ ¿¬¾ð¸íÁ¦ p ¡ü q ´Â Æ÷¶õµå½ÄÀ¸·Î´Â ¡ü p q À̸ç LISP ¿¡¼´Â (And p q)·Î Ç¥±âµÇ±â ¶§¹®ÀÌ´Ù. µÎ °³ ÀÌ»óÀÇ ¼ú¾îµéÀÇ °áÇÕÀ» °Ë»çÇÔ¿¡ ÀÖ¾î¼, ¼ú¾îµéÀÇ ¿¬¾ð(and) ÀÇ °æ¿ì´Â ÇϳªÀÇ ¼ú¾î°¡ °ÅÁþÀÌ¶óµµ °ÅÁþÀÌ µÇ¸ç ¼ú¾îµéÀÇ ¼±¾ð(or) ÀÇ °æ¿ì´Â ÇϳªÀÇ ¼ú¾î°¡ ÂüÀÏÁö¶óµµ ÂüÀÌ µÈ´Ù´Â Á¡ÀÌ È°¿ëµÈ´Ù. ±×¸®ÇÏ¿© ¿¬¾ð And´Â ¿ÞÆí¿¡¼ ¿À¸¥ÆíÀ¸·Î ³íÇ×µéÀ» Æò°¡ÇØ °¡¸é¼ NILÀÌ ³ª¿À¸é NIL·Î °áÁ¤ÇÏ°í ¸ðµÎ °Ë»çÇØ NILÀÌ ¾øÀ¸¸é T ·Î ÆÇÁ¤ÇÑ´Ù. ±×¸®°í ¼±¾ð OR µµ ¿ÞÆí¿¡¼ ¿À¸¥ÆíÀ¸·Î ³íÇ×µéÀ» Æò°¡ÇØ °¡´Âµ¥ À̶§¿¡´Â ¾î¶² °ÍÀÌ NILÀÌ ¾Æ´ÑÁö¸¦ Æò°¡ÇØ °£´Ù. ¿©±â¼ non-NILÀº ¹Ýµå½Ã T °¡ ¾Æ´ÔÀ» À¯ÀÇÇØ º¼ Çʿ䰡 ÀÖ´Ù.
*(OR (LIST PI) (NUMBERP PI))
(3.14) ;
(LIST PI)´Â NILÀÌ ¾Æ´Ï¹Ç·Î
;
µÑ° ³íÇ×Àº ¹«½ÃµÇ¾ú´Ù.
*(OR (LISTP PI) (NUMBERP PI))
T
;
PI´Â ¸®½ºÆ®´Â ¾Æ´ÏÁö¸¸ ¼öÀÌ´Ù.
*(OR (LISTP PI) (= PI 0))
NIL
;
PI´Â ¸®½ºÆ®µµ ¾Æ´Ï°í ¿µµµ ¾Æ´Ï´Ù.
*(AND (LISTP PI)(NUMBERP
PI)
NIL ;
PI´Â ¸®½ºÆ®°¡ ¾Æ´Ï±â ¶§¹®ÀÌ´Ù.
*(AND (LIST PI) (NUMBERP PI)
T
;
T °¡ µÈ °ÍÀº (LIST PI)´Â (3.14)°¡ µÇ¾î NILÀÌ ¾Æ´Ï¸ç PI°¡ ¼öÀ̱⠶§¹®ÀÌ´Ù.
*(AND
(NUMBERP PI) (LIST PI))
(3.14) ;
PI´Â ¼öÀ̹ǷΠ³Ñ¾î°¡ LIST¸¦ ÀÛµ¿ÇÑ´Ù.
¿ì¸®´Â ¿©±â¼ LISPÀÇ ¿¬¾ð(and) °ú ¼±¾ð(or) ÀÌ ³í¸®ÀûÀÎ
±×°Íµé°ú ¿©·¯ °¡Áö·Î À¯»çÇÏÁö¸¸ Â÷À̰¡ ÀÖÀ½À» ¹ß°ßÇÏ°Ô µÈ´Ù. ±× Ç¥±â¹ýÀÌ ´Ù¸¥
Á¡Àº ÀÌ¹Ì ¾ð±ÞµÇ¾úÀ¸¸ç ¿¬¾ð Ç¥ÇöÀ̳ª ¼±¾ð Ç¥ÇöÀÇ °ªÀÌ T ³ª NIL ÀÌ¿ÜÀÇ °ÍÀ¸·Îµµ
±â·ÏµÉ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ±× ±î´ßÀº T °¡ ¾Æ´Ñ non-NILÀÇ °ªµµ Æò°¡ÀÇ ´ë»óÀÌ µÇ¸ç
±× Æò°¡´Â ¼øÂ÷ÀûÀ¸·Î ¿ÞÆí¿¡¼ ¿À¸¥ÆíÇ׿¡·Î ÁøÇàµÇ±â ¶§¹®ÀÌ´Ù. µû¶ó¼ Æò°¡ÀÇ
°ªÀÌ T ¿Í NILÀÇ µÑ»ÓÀÌ ¾Æ´Ï°í ±× ÀÌ»óÀÌ µÉ ¼ö ÀÖ´Ù´Â Á¡¿¡¼ ÀÌÄ¡³í¸®(two-valued
logic)À» ³Ñ¾î¼± ´ÙÄ¡³í¸®(many-valued logic)¸¦ ¼ö¿ëÇÏ´Â ¹æ½ÄÀ̶ó°í ÇϰڴÙ. ³íÇ×ÀÇ
¼ø¼¿¡ °ü°è¾øÀÌ »ç¿ëµÉ ¼ö ÀÖ´Â ³í¸®Àû ¿¬¾ðÀ̳ª ¼±¾ð°ú´Â ´Þ¸®, LISP-AND¿Í LISP-OR¿¡¼´Â
±³È¯¹ýÄ¢ÀÌ ¼º¸³µÇÁö ¾Ê´Â´Ù´Â °ÍÀº À§ÀÇ º¸±â¿¡¼µµ Àß ³ªÅ¸³ª ÀÖ´Ù.
¿ì¸®°¡
LISPÀÇ AND¿Í ÀÌÄ¡³í¸®¿¡ ±â¹ÝÀ» µÐ ³í¸®Àû ¿¬¾ðÀ» ºñ±³Çϱâ À§ÇØ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÏ¿©
»ç¿ëÇØ º¸ÀÚ.
*(DEFUN LOGICAL-AND (X Y) (AND
X Y T))
LOGICAL-AND
*(LOGICAL-AND (NUMBERP 'FRED) (ODDP
' FRED))
ERROR: ODDP : Wrong type argument: FRED
An INTEGER was expected
*(AND
(NUMBERP' FRED) (ODDP ' FRED))
T
À§¿¡¼ º¸´Â ¹Ù¿Í °°ÀÌ ³í¸®Àû ¿¬¾ðÀº ³íÇ×ÀÇ Æò°¡ ¿©ºÎ¸¦ Á¦¾îÇÒ ¼ö ¾ø¾î LISPÀÇ ¿¬¾ðº¸´Ù ¸Å¿ì Á¦ÇѵǾî ÀÖ´Ù. ±×·¯³ª ÀÌÄ¡³í¸®ÀÇ ±â¹ÝÀÎ ºÎ¿ï ´ë¼ö(Boolean Algebra)ÀÇ 1 °ú 0 µéÀº Claude Shannon ¿¡ ÀÇÇØ Àü±â ½ºÀ§Ä¡ ȸ·Î·Î Ç¥ÇöµÉ ¼ö ÀÖÀ½À» ¹àÈ÷°Ô µÇ¾ú°í À̰ÍÀÌ ¿À´Ã³¯ ÄÄÇ»ÅÍÀÇ È¸·Î¿¡ Àû¿ëµÈ ¸¸Å LISPÀÇ ¿¬¾ðÀ̳ª ¼±¾ðµµ °á±¹ 0°ú 1ÀÇ °ªÀ¸·Î Àü°³µÇ´Â ¿øÃÊÀûÀÎ ³í¸®Àû ¿¬»êÀÚ(primitive logical operator)¿¡ ÀÇÁ¸ÇÑ´Ù°í ÇϰڴÙ.
Á¶°Ç¾ðÀÇ Ç¥ÇöÀº ¹«Ã´ ´Ù¾çÇÑ »ç°íÀ¯ÇüÀ¸·Î ¾²¿©Áú »Ó¸¸ ¾Æ´Ï¶ó ³í¸®Àû »ç°í³ª Àΰø¾ð¾î ±¸Á¶ÀÇ ±âÃÊÀûÀÎ ¿äÀÎÀÌ µÇ±â ¶§¹®¿¡ Áß¿äÇϸ鼵µ ¶§·Î´Â È¥¶õÀ» ¸¹ÀÌ ¾ß±âÇØ¿Â ¹®Á¦À̱⵵ ÇÏ´Ù. ¾î¶² ³í¸®Àû »ç°íµµ Ã߸®ÀÇ Çü½ÄÀ» ÃëÇϰí Ã߸®¶õ '¸¸¾à ÀüÁ¦ÀÌ¸é °á·ÐÀÌ´Ù'´Â Á¶°Ç¾ðÀÇ Çü½ÄÀ¸·Î Ç¥ÇöµÇ¹Ç·Î Á¶°ÇÇ¥ÇöÀÌ ¿¬¿ªÀûÀÎ µµÃâ°¡´É¼º°úµµ °áºÎµÇ¾î ¿ÔÀ¸¸ç, ÇÔ¼öÇü½ÄÀ» ÃëÇÏ´Â LISPÀÇ °æ¿ìµµ '¸¸¾à ÇÔ¼öÇüÀ¸·Î ¹°À¸¸é ÇÔ¼ö°ªÀ» ´ë´äÇÑ´Ù'·Î µÇ¾î LISP ÀÚüµµ Á¶°Ç¾ðÀÇ Ç¥ÇöÀ¸·Î Ç®ÀÌµÉ ¼ö ÀÖ´Ù. ±×·±µ¥ Á¶°Ç¾ðÀÇ ³í¸®ÀÇ ´ëÇ¥ÀûÀÎ Çü½ÄÀÎ ½ÇÁúÇÔÃà(material implication)Àº À̸¥¹Ù ¿ª¸®Çö»ó(paradox) ¿¡ ºÎµúħ¿¡ µû¶ó, À̸¦ ÇØ¼ÒÇϱâ À§ÇØ ½ÇÁúÇÔÃàÀÇ ÀÌÄ¡³í¸®ÀûÀÎ Áø¸®ÇÔ¼ö°ü°è¿¡ ´ëÇÑ ¿©·¯ °¡Áö À½¹Ì¿Í ºñÆÇÀÌ ÀÖ¾ú°í ±×¸¦ ÅëÇØ »õ·Î¿î ³í¸®µéÀÌ °³¹ßµÇ±âµµ ÇÏ¿´´Ù.
LISPÀÇ Á¶°ÇÇ¥Çöµéµµ ±×·¯ÇÑ »õ·Î¿î ³í¸®°³¹ßÀÇ ÇÑ °¡Áö ÇüÅ·Πº¼ ¼ö ÀÖ´Ù. p ¡æ qÀÇ Çü½ÄÀ¸·Î Ç¥ÇöµÇ´Â ¸íÁ¦³í¸®ÀÇ ½ÇÁúÇÔÃà À̶õ ÁÖÁöÇÏ´Â ¹Ù¿Í °°ÀÌ ¡p ¡ý q³ª ¡(p ¡ü ¡q)·Î Á¤ÀǵǸç--ÀÌ Á¤ÀÇ¿¡´Â Âü°ú °ÅÁþÀ̶ó´Â µÎ °³ÀÇ Áø¸®Ä¡ °ü°è¸¸ÀÌ °í·ÁµÈ´Ù-- ÀÌ·± ÀÌÄ¡³í¸®¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© ±×°ÍµéÀÇ ÀÏÄ¡ ¿©ºÎ¸¸À» ³íÇÏ´Â Áø¸®ÇÔ¼öÀÇ ³í¸®¿´´Ù. ±×¸®°í ÀÌ ½ÇÁúÇÔÃàÀ» ÀÏ»ó¾ð¾î·Î´Â Á¶°Ç¾ð Çü½ÄÀ¸·Î '¸¸¾à p¸é q' (if..., then...)¶ó°í È£ÄªÇØ ¿Ô´Ù.
±×·±µ¥ ½ÇÁúÇÔÃà¿¡ ÀÇÇϸé Àü°ÇÀÎ p°¡ °ÅÁþÀ̸é ÈİÇÀÎ qÀÇ Áø¸®Ä¡¿¡ °ü°è¾øÀÌ ±× ½ÇÁúÇÔÃàÀº ÂüÀÌ µÈ´Ù. ´Ù½Ã ¸»Çϸé, '±è±ºÀÌ ´ëÇп¡ ÀÔÇÐÇÏ¸é ³ª´Â ±è±º¿¡°Ô ±¸µÎ¸¦ »ç ÁÖ°Ú´Ù'°í ÇÑ ¸»Àº ±è±ºÀÌ ´ëÇп¡ ÀÔÇÐÇÏÁö ¸øÇϸé ÂüÀÌ µÈ´Ù´Â °ÍÀÌ´Ù. À̰ÍÀº ÀÏ»ó¾ð¾îÀÇ Á¶°Ç¾ð ÀÇ¹Ì¿Í ¹èÄ¡µÈ´Ù. ±×¸®ÇÏ¿© ±×°ÍÀº À̸¥¹Ù ½ÇÁúÇÔÃàÀÇ ¿ª¸®·Î ȣĪµÇ¾î ¿Ô´Ù. ±×·¯¸é ÀÌÄ¡³í¸®ÀÇ ÄÄÇ»ÅÍ È¸·Î¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ¾ß ÇÏ´Â LISP´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ¾î¶»°Ô ÇØ°áÇÒ ¼ö ÀÖµµ·Ï Á¶°ÇÇ¥ÇöÀ» Çϰí ÀÖ´Â °ÍÀϱî?
LISP°¡ Á¶°ÇÇ¥ÇöÀ» À§ÇØ ¸¶·ÃÇÑ ¿øÃÊÀû ±âÈ£·Î´Â WHEN, UNLESS, IF, COND°¡ ÀÖ´Ù. À̵éÀÇ ÀýÂ÷¸¦ ¸ð¹üÀûÀ¸·Î Á¦½ÃÇÏ´Â Á¶Çü(template)°ú ±× ½Ç·ÊµéÀ» »ìÆì º¸¸é¼ ½ÇÁúÇÔÃàÀÇ ¿ª¸®ÇؼҸ¦ ¾î¶»°Ô ½ÃµµÇß´ÂÁö¸¦ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ. °¡·É, ¿Âµµ¿Í °°Àº º¯Ç×ÀÇ °ªÀ» °Ë»çÇÏ¿© ±× °á°ú°¡ Ãß¿îÁö, ´õ¿îÁö, Àû´çÇÑÁö¸¦ ¾Ë·Á´Â °æ¿ìó·³, LISPÀÇ ¿øÃÊÀû Á¶°Ç±âÈ£µéÀº, ¿ì¸®°¡ ¾Ë°íÀÚ ÇÏ´Â °ªÀÌ ¾î¶² °Ë»çÀÇ °á°ú¿¡ ÀÇÁ¸ÇÏ´Â °æ¿ì¿¡ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï °í¾ÈµÇ¾ú´Ù. ÀϹÝÈµÈ Á¶°Ç±âÈ£´Â CONDitional¿¡¼ µû¿Â COND ÀÌÁö¸¸ ±×º¸´Ù ´Ü¼øÇÑ °ÍÀº IF À̰í WHEN °ú UNLESS ´Â IFÀÇ Æ¯¼öÇÑ °æ¿ì¶ó°í ÇÒ ¼ö ÀÖÀ¸¹Ç·Î IF ºÎÅÍ ¾Ë¾Æ º¸±â·Î ÇÑ´Ù.
IFÀÇ ¸ðÁ¶ÇüÀº ´ÙÀ½°ú °°´Ù.
(IF <°Ë»çÇü>
<Á¦2Çü> <Á¦3Çü>)
IFÇü½Ä¿¡ ÀÖ¾î¼ Ã¹Â° ³íÇ×Àº ¹«¾ùÀ» °Ë»çÇϱâ
À§ÇØ ÀÛµ¿ÇÏ´Â Çü½Ä(trigger or test form)Àε¥ ±× °Ë»ç°á°ú°¡ T À̰ųª NILÀÌ ¾Æ´Ñ
°ÍÀ¸·Î µÇ¸é Á¦2ÇüÀ» Æò°¡ÇÏ°í ±× °Ë»ç °á°ú°¡ NILÀ̸é Á¦3ÇüÀ» Æò°¡ÇÑ´Ù. ´ÙÀ½ÀÇ
º¸±â´Â º¯Ç× X ¸¦ ¿Âµµ°¡ Ⱦ¾ 50µµÀÎ ¹°À̶ó°í ÇßÀ» °æ¿ìÀÌ´Ù.
*(IF ( > X 32)'LIQUID-OR-GAS'
SOLID)
LIQUID-OR-GAS
±×·±µ¥ Á¶°ÇÇ¥Çö WHENÀº °Ë»çÇüÀÌ T ³ª non-NIL ÀÎ °æ¿ì Á¦2ÇüÀ» Æò°¡ÇÏ°í °Ë»ç°á°ú°¡ NIL À̸é NIL ·Î Æò°¡ÇÏ´Â Çü½ÄÀÌ´Ù. À̰ÍÀº (WHEN <°Ë»çÇü> <Á¦2Çü>)ÀÇ ¸ðÁ¶ÇüÀ¸·Î Ç¥ÇöµÈ´Ù. Á¶°ÇÇ¥Çö UNLESS ´Â ±× °Ë»çÇüÀÌ NIL ÀÎ °æ¿ì, Á¦2ÇüÀ» Æò°¡Çϰí non-NIL À̸é NIL ·Î ÆòÇÏ´Â °ÍÀ¸·Î¼ (UNLESS <°Ë»çÇü> <Á¦2Çü>)ÀÇ ¸ðÁ¶ÇüÀ» ÃëÇÑ´Ù.
*(WHEN(> X 32) 'LIQUID-OR-GAS)
LIQUID-OR-GAS
*(WHEN
( < X 32) 'SOLID)
NIL
*(UNLESS ( > X 32) 'SOLID)
NIL
*(UNLESS
( < X 32) 'LIQUID-OR-GAS)
LIQUID-OR-GAS
ÀϹÝÀûÀÎ ¿øÃÊÀû Á¶°Ç±âÈ£
CONDÀÇ ¸ðÁ¶ÇüÀº ´ÙÀ½°ú °°´Ù.
(COND (
<°Ë»çÇü 1> <°á°ú °ª 1> )
(
<°Ë»çÇü 2> <°á°ú °ª 2> )
.
. .
(
<°Ë»çÇü n> <°á°ú °ª n> ))
°Ë»çÇÑ °á°ú°¡ non-NILÀÏ ¶§¸¸ ±×¿¡ ´ëÀÀÇÏ´Â °á°ú °ªÀ» Æò°¡ÇÏ°Ô µÈ´Ù. ±×¸®ÇÏ¿© °Ë»çÇü Áß¿¡´Â °¡´ÉÇÑ ¸ðµç °æ¿ì¸¦ ¸ðµÎ ¿°ÅÇÏ¿© Æò°¡Çϸé ÇØ´çÇÏ´Â ÀûÀýÇÑ °ªÀ» ¾òÀ» ¼ö ÀÖ´Ù. Á¶ÇüÀÇ ¸¶Áö¸· <°Ë»çÇü n>´Â T ·Î ´ëÄ¡ÇÏ¿© ÈçÈ÷ »ç¿ëÇϴµ¥ ±×°ÍÀº ³ª¸ÓÁö °æ¿ì ¸ðµÎ¸¦ ÁöĪÇϹǷΠÆí¸®ÇÏ°Ô ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.
*(SETF P .6)
*(COND
((> P .75) 'VERY-LIKELY)
((>
P .5) 'LIKELY)
((>
P .25) 'UNLIKELY)
(
T 'VERY-UNLIKELY))
LIKELY
À§¿¡¼ »ìÆìº» LISPÀÇ Á¶°ÇÇ¥ÇöµéÀ» ¸íÁ¦³í¸®ÀÇ ½ÇÁúÇÔÃà°ú ºñ±³Çϱâ À§ÇØ Áø¸®Ç¥(truth-table)¸¦ ¸¸µé¾î º¸ÀÚ. Áø¸®°ª NILÀº F ·Î Á¤È®È÷ ¹ø¿ªµÇÁö¸¸ non-NILÀº T ¿Í ¿ÏÀüÈ÷ ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î ¾Æ·¡ µµÇ¥¿¡¼ Ç¥½ÃµÈ T ¿Í ¿ÏÀüÈ÷ ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î ¾Æ·¡ µµÇ¥¿¡¼ Ç¥½ÃµÈ T ´Â ³íÀÇÀÇ ÆíÀÇ»ó ´ÜÁö non-NILÀ» ´ëÇ¥ÇÏ´Â °ÍÀ¸·Î °£ÁÖÇÑ´Ù.
|
p |
q |
p¡æq |
(WHEN p q) |
(UNLESS p q) |
(IF p q) |
(COND p q) |
1 |
T |
T |
T |
T |
F |
T |
T |
WHENÀÇ °æ¿ì, °Ë»çÇüÀÎ p °¡ non-NILÀÏ ¶§ Á¦2ÇüÀÎ q ÀÇ °ª¿¡ µû¶ó °áÁ¤µÇ°í ÀüÀÚ°¡ °ÅÁþÀÏ °æ¿ì´Â ¸ðµÎ °ÅÁþÀ¸·Î µÇ¾ú°í, UNLESS´Â °Ë»çÇüÀÌ °ÅÁþÀÏ ¶§¿¡¸¸ Á¦2ÇüÀ» Æò°¡ÇÏ°í ³ª¸ÓÁö °æ¿ì´Â ¸ðµÎ °ÅÁþÀ¸·Î ó¸®ÇÏ¿´±â ¶§¹®¿¡ À§¿Í °°Àº Áø¸®Ç¥°¡ ¼º¸³µÈ´Ù. ±×·¯³ª IF ¿Í CONDÀÇ °æ¿ì´Â °Ë»çÇüÀÌ °ÅÁþÀÌ¸é µÎ °³ÀÇ ³íÇ׸¸À¸·Î °áÁ¤ÇÒ ¼ö ¾ø°í ¼¼¹øÂ° ³íÇ×ÀÇ °ª¿¡ ÀǰÅÇÏ¿© Æò°¡µÇ¹Ç·Î µÎ °³ÀÇ ³íÇ׸¸À¸·Î´Â °áÁ¤µÉ ¼ö ¾ø°í ¿ÀÁ÷ °Ë»çÇüÀÌ °ÅÁþÀÌ ¾Æ´Ò °æ¿ì¸¸ Æò°¡µÉ »ÓÀÌ´Ù. À̸®ÇÏ¿© °Ë»çÇüÀÌ °ÅÁþÀÌ¸é ¾ðÁ¦³ª ÂüÀ¸·Î ÆÇÁ¤µÇÁö ¾Ê±â ¶§¹®¿¡ ½ÇÁúÇÔÃàÀÇ ¿ª¸®´Â ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª LISPÀÇ Á¶°ÇÇ¥Çöµé¿¡¼´Â non-NILÀÌ T À̿ܿ¡ ´Ù¸¥ ±âÈ£°ªÀ¸·Îµµ Á¦½ÃµÇ±â ¶§¹®¿¡ ÀÌÄ¡³í¸®ÀÇ ½ÇÁúÇÔÃà¿¡¼Ã³·³ Áø¸®Ä¡ÀÇ ¿¬»êÀ» ÇÒ ¼ö ¾ø´Ù°í ÇϰڴÙ.
ÀÚ¿¬¾ð¾î¿Í Àΰø¾ð¾î¿¡¼ È¥µ¿À̳ª ¿ÀÇØ¸¦ ¾ß±â½ÃŰ´Â ¹®Á¦µé Áß¿¡´Â ÀÚ±âÁö½ÃÀû ¾ð¾îÀÇ ¿ª¸®µéÀÌ ÀÖ´Ù. 19¼¼±â ¸»°ú 20¼¼±â ÃÊ¿¡ °ÉÃÄ È°¹ßÈ÷ ³íÀǵǾú´ø ¼öÇÐÀÇ ±âÃÊÀÌ·Ð ºÐ¾ß¿¡¼ ·¯¼¿ÀÇ ¿ª¸®(B. Russell's Paradox)·Î ´ëÇ¥µÇ´Â ÁýÇÕ·Ð ¶Ç´Â ³í¸®Àû ¿ª¸®¿Í °ÅÁþ¸»ÀïÀÌÀÇ ¿ª¸®·Î ÁöĪµÇ´Â ÀνķР¶Ç´Â Àǹ̷ÐÀû ¿ª¸® µîÀÌ ±×·¯ÇÑ ºÎ·ù¿¡ ¼ÓÇÑ´Ù. ±×¸®°í Ãʱ⠺ñÆ®°Õ½´Å¸Àΰú ³í¸®½ÇÁõÁÖÀÇÀÇ Â÷ÀÌÁ¡¿¡¼¿Í °°ÀÌ, 1930³â´ë ÃÊ¿¡ Ä«¸£³³ÀÌ Àΰø¾ð¾î ±¸¼º¿¡ °üÇÑ ºñÆ®°Õ½´Å¸ÀÎÀÇ °ßÇØ¸¦ ºñÆÇÇÑ °Íµµ ¹Ù·Î ÀÚ±âÁö½ÃÀû ¾ð¾î¸¦ Áß½ÉÀ¸·Î Àü°³ÇÑ °ÍÀ̾ú´Ù. ÀÌó·³ 20¼¼±â ÃÊ¿¡ Ȱ¹ßÈ÷ Àü°³µÇ¾ú´ø ³í¸® ¹× ¼ö¸®Ã¶ÇÐÀû ³íÀÇÀÇ °á°úµéÀº ƯÈ÷ LISPÀÇ È¸±ÍÇÔ¼ö 󸮿¡ Àß ¹Ý¿µµÇ¾ú´Ù°í ÇϰڴÙ.
·¯¼¿ÀÇ ¿ª¸®¶õ ¸ðµç ¼öÇÐÀÇ ±âÃʰ¡ µÇ´Â ÁýÇÕÀÇ °³³äÀ» ¸íÈ®È÷ ¹àÈ÷·Á´Â öÇÐÀû ޱ¸°úÁ¤¿¡¼ ¹ß°ßµÇ¾ú´Ù. Åë»óÀûÀÎ ÁýÇÕµéÀº Çϳª ÀÌ»óÀÇ ¿ø¼ÒµéÀÇ ÁýÇÕÀÌÁö¸¸ ÇϳªÀÇ ¿ø¼Ò¸¸ °¡Áø °Íµµ ÁýÇÕÀ̶ó°í ÇÏ¸ç ½ÉÁö¾î´Â ÇϳªÀÇ ¿ø¼Òµµ °®Áö ¾ÊÀº °Íµµ °øÁýÇÕ(null set)À̶ó°í ÇÏ¿© ÁýÇÕÀÇ ¸íĪÀ» ºÙÀδÙ. ±×¸®°í Åë»óÀûÀÎ ÁýÇշп¡ ÀÇÇϸé ÁýÇÕµéÀº ÀÚ±â Àڽŵµ ÀÚ±âÀÇ ¿ø¼Ò·Î »ï´Â °ÍÀÌ Á¤»óÀûÀ̹ǷÎ, ÀÌ·¸°Ô 'ÀÚ±â ÀÚ½ÅÀ» ¿ø¼Ò·Î »ï´Â ÁýÇÕµéÀÇ ¸ðµç ÁýÇÕ'À» N À̶ó°í ÇÏÀÚ. ±×·±µ¥ ·¯¼¿ÀÌ »óÁ¤ÇÑ ÁýÇÕÀº ±×·± Á¤»óÀû ÁýÇÕ°ú´Â ´Þ¸® 'ÀÚ±â ÀÚ½ÅÀ» ¿ø¼Ò·Î »ïÁö ¾Ê´Â ÁýÇÕ'ÀÌ´Ù. À̸®ÇÏ¿© ÀÚ±â ÀÚ½ÅÀ» ¿ø¼Ò·Î »ïÁö ¾Ê´Â ¸ðµç ÁýÇÕµéÀÇ ÁýÇÕÀ», N °ú ±¸º°ÇÏ´Â ·¯¼¿ÀÇ ÁýÇÕÀ̶ó´Â ¶æ¿¡¼ R ·Î ȣĪÇϸé,
R = { X : X ∉ X }
ÀÌ µÈ´Ù. ±×·±µ¥ ÀÌ R Àº ÀÚ±â Àڽſ¡ ¼ÓÇϴ°¡ ¼ÓÇÏÁö ¾Ê´Â°¡ ÇÏ´Â °ÍÀÌ ¹®Á¦´Ù. ¸¸¾à R ÀÌ R ¿¡ ¼ÓÇÏÁö ¾Ê´Â´Ù¸é ±×°ÍÀº R ÀÇ Á¤ÀÇ¿¡ ÀÇÇØ R ¿¡ ¼ÓÇÑ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ¸¸¾à R ÀÌ R ¿¡ ¼ÓÇÑ´Ù¸é ±×°ÍÀº ´Ù½Ã±Ý R ÀÇ Á¤ÀÇ¿¡ ÀÇÇØ R ¿¡ ¼ÓÇÏÁö ¾Ê´Â´Ù´Â ¿ª¸®Çö»ó¿¡ ºÎµúÄ£´Ù.
´Ù¸¥ ÇÑÆí, Àǹ̷ÐÀû ¿ª¸®·Î ȣĪµÇ´Â °ÅÁþ¸»ÀïÀÌÀÇ ¿ª¸®´Â °í´ë ±×¸®½º öÇÐÀÚµéÀÇ ³íÀÇ Áß¿¡¼ Á¦±âµÇ¾ú´ø °ÍÀÌ´Ù. Å©·¹Å× »ç¶÷ ¿¡ÇǸ޴ϵ¥½º´Â "¸ðµç Å©·¹Å× »ç¶÷Àº °ÅÁþ¸»ÀïÀÌ´Ù"¶ó°í ¸»ÇÏ¿´´Ù. ÀÌ ¸»Àº Âü¸»Àΰ¡ °ÅÁþ¸»Àΰ¡? ¸¸¾à ±×°¡ Âü¸»À» ÇÏ¿´´Ù¸é ±×°ÍÀº °ÅÁþ¸»ÀÌ°í ¸¸¾à ±×°¡ °ÅÁþ¸»À» ÇÏ¿´´Ù¸é ±×°ÍÀº Âü¸»ÀÌ´Ù. ÀÌ ¿ª¸®Çö»óÀ» Á»´õ ´Ü¼øÈÇÏ¿© ¸»ÇÑ´Ù¸é '³»°¡ Áö±Ý ¸»Çϰí ÀÖ´Â °ÍÀº °ÅÁþ¸»ÀÌ´Ù'¶ó´Â Ç¥Çö S ·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.³»°¡ °ÅÁþ¸»À» Çß´Ù¸é ±×°ÍÀº S ¿¡ ÀÇÇØ Âü¸»ÀÌ°í ¸¸¾à ³»°¡ Âü¸»À» Çß´Ù¸é ±×°ÍÀº S ¿¡ ÀÇÇØ °ÅÁþ¸»À» ÇÑ °ÍÀÌ µÇ´Ï ¸»ÀÌ´Ù.
ÀÌ¿Í °°Àº ¿ª¸®Çö»óµéÀº ¾óÇÍ º¸¸é ¸»Àå³Ã³·³ º¸À̱⵵ Çϳª 1903³â ·¯¼¿ÀÌ ¹ßÇ¥ÇÑ ÁýÇÕ·ÐÀÇ ¿ª¼³Àº ´ç½Ã ¼öÇа迡¼ Á¤¼³·Î ±»¾î°¡´ø ÄÅä¾î(G. Cantor)ÀÇ ÁýÇÕ·ÐÀÇ ±âÃʸ¦ µÚÈçµé°Ô µÇ¾ú°í ¼öÇаèÀÇ À§±â·Î °£ÁֵǴ ū »ç°ÇÀ̾úÀ¸¸ç ±× ÇØ°áÀÇ ¹æÇâÀÌ Çö´ë ¼öÇÐÀÇ Çà¹æÀ» ±ÔÁ¤ÇØ ÁÙ Á¤µµ¿´´Ù. ÀÌ¿Í °ü·ÃµÈ Àǹ̷ÐÀû ¿ª¼³Àº ¾ð¾îÀÇ ¼öÁØÀ» ±¸ºÐÇÔÀ¸·Î½á ±× ¿ª¸®Çö»ó ¹ß°ßÀº Çö´ë¿¡¼ Áø¸®·Ð ¿¬±¸¿Í ¾ð¾îºÐ¼®ÀÇ »õ·Î¿î ÀüȯÁ¡ÀÌ µÇ¾ú´Ù.
·¯¼¿ ÀÚ½ÅÀº ÁýÇÕ·ÐÀÇ ¿ª¸®¸¦ À¯Çü·Ð(theory of types)À» Á¦½ÃÇÏ¿© ÇØ°áÇÏ¿´´Ù. ¿ì¸®°¡ ¼ú¾î³í¸®¿¡¼ 'x ´Â p ´Ù'¶ó°í ÇßÀ» ¶§ À̰ÍÀÌ Àǹ̸¦ Áö´Ï±â À§Çؼ´Â x ¿Í p ÀÇ ¹üÀ§°¡ °¢±â ±ÔÁ¤µÇ¾î¾ß ÇÏ´Â °Íó·³, 'X °¡ Y ¿¡ ¼ÓÇÑ´Ù'°í ÇßÀ» ¶§µµ °¢±â ±× ¹üÀ§µéÀÌ ¼³Á¤µÇ¾î¾ß ÇÑ´Ù. ÁýÇÕ¿¡¼ °¡Àå ³·Àº À¯ÇüÀº °³Ã¼µéÀ̸ç, °³Ã¼µéÀÇ ÁýÇÕ, ±× ÁýÇÕÀÇ ÁýÇÕÀ¸·Î À¯ÇüÀÌ Â÷·Ê·Î ³ô¾Æ°£´Ù. ±×·¯¹Ç·Î °¡·É, °³Ã¼µé a, b, cÀÇ ÁýÇÕ A ÀÇ À¯ÇüÀº ±× °³Ã¼µé a º¸´Ù ÇÑ ´Ü°è ³ôÀº À¯ÇüÀÌ´Ù. ÀÌ¿Í °°ÀÌ 'X ¡ô Y'¿¡ ÀÖ¾î¼ Y ÀÇ À¯Çü(type)Àº X ÀÇ À¯Çüº¸´Ù ÇÑ ´Ü°è ³ô¾Æ¾ß ÇÔ¿¡µµ ºÒ±¸Çϰí ÀÌ À¯ÇüÀÇ Â÷À̸¦ ¹«½ÃÇϰí, ±×µéÀÇ À¯ÇüÀ» µ¿ÀÏÇÑ °ÍÀ¸·Î Ãë±ÞÇϴµ¥¼ ¿ª¸®Çö»óÀÌ ³ªÅ¸³´Ù°í º¸¾Ò´Ù. ±×·¯¹Ç·Î 'X ¡ô X'¿¡¼µµ ¾ÕÀÇ À¯ÇüÀ» µÚÀÇ À¯Çüº¸´Ù ÇÑ ´Ü°è ³·Àº °ÍÀ¸·Î Ãë±ÞÇÏ¸é ¿ª¸®°¡ ¹ß»ýÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. ƯÈ÷ ·¯¼¿Àº ÀÌ·± Á¾·ùµéÀÇ ¿ª¸®¸¦ ÇÇÇϱâ À§ÇØ ÁؼöÇØ¾ß ÇÏ´Â ¾Ç¼øÈ¯ÀÇ ¿ø¸®(vicious circle principle)¸¦ Á¦½ÃÇÏ¿´´Ù. ±×°ÍÀº ¾î¶² ÁýÇÕµµ ±× Àüü¿¡ ÀÇÇØ¼¸¸ Á¤ÀÇµÉ ¼ö ÀÖ´Â ±×·± ¿ø¼Ò¸¦ °¡Áú ¼ö ¾ø´Ù´Â ³»¿ëÀÇ ¿ø¸®´Ù.
ÁýÇÕ·ÐÀÇ ¿ª¸®°¡ ÀÚ±â Áö½Ã(self reference)ÀÇ À¯ÇüÀ» È¥µ¿ÇÑ °ÍÀ̶ó¸é Àǹ̷ÐÀÇ ¿ª¸®´Â ¾ð¾îÀÇ ¼öÁØÀ» È¥µ¿ÇÑ °ÍÀ¸·Î ÁöÀûµÇ¾ú´Ù. Ÿ¸£½ºÅ°(A. Tarski)´Â Áø¸® °³³äÀ» ±×°ÍÀ» Ç¥ÇöÇÏ´Â ¾ð¾î¿¡ ÀÇÁ¸ÇÏ´Â °ÍÀ¸·Î ÆÇÁ¤ÇÏ¿´´Ù. ¾î¶² ÁÖÀåÀÌ ÂüÀ̶ó°í ÇÒ ¶§ ±×°ÍÀÌ ÂüÀÌ µÈ´Ù´Â Àǹ̸¦ ºÐ¸íÈ÷ Çϱâ À§Çؼ´Â ±×°ÍÀ» Ç¥ÇöÇÏ´Â ¾ð¾îÀÇ ¼öÁØÀÌ Á¦½ÃµÇ¾î¾ß ÇÑ´Ù. ƯÈ÷ ´ë»ó¾ð¾î(object language)¿Í ¸ÞŸ¾ð¾î(meta language)ÀÇ ¼öÁØÀÌ ±¸ºÐµÇÁö ¾Ê´Â ÀÚ±âÁö½ÃÀû ¾ð¾î¸¦ »ç¿ëÇÏ°Ô µÉ ¶§ °ÅÁþ¸»ÀïÀÌÀÇ ¿ª¸®¿Í °°Àº Àǹ̷ÐÀû ¿ª¸®°¡ ¹ß»ýÇÑ´Ù´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, '¸ðµç Å©·¹Å× »ç¶÷ÀÌ ¾ð¾î L1 ·Î ¸»ÇÏ´Â °ÍÀº °ÅÁþ¸»À̶ó°í ¿¡ÇǸ޴ϵ¥½º´Â ¾ð¾î L2 ·Î ¸»ÇÏ¿´´Ù'°í ¸»ÀÌ´Ù. ÀÌ·¸°Ô ¾ð¾î¼öÁØÀ» ±¸ºÐÇÏ¸é ¿ª¸®´Â ÇØ¼ÒµÈ´Ù´Â °ÍÀÌ´Ù. ´ë»ó¾ð¾î¿Í ¸ÞŸ¾ð¾îÀÇ ±¸ºÐÀº Çö´ë ºÐ¼®Ã¶Çп¡¼ °³¹ßÇÑ ¸í¼®ÈÀÛ¾÷ÀÇ Áß¿äÇÑ ¾÷ÀûÀÌ¸ç ±× µµ¿òÀ» ¹è°æÀ¸·Î ÇÏ¿© ÇÁ·Î±×·¥¾ð¾îÀÎ LISP¿¡¼µµ ±âÈ£¿Í ±âÈ£ ÀÚ½ÅÀ» ³ªÅ¸³»´Â ±âÈ£¸¦ ±¸ºÐÇϱâ À§ÇØ µû¿ÈÇ¥°¡ ¾²¿©Áö°Ô µÇ¾ú´Ù°í ÇϰڴÙ.
±×·¯¸é ÀÚ±â Áö½Ã(self reference) ¿¡¼ ¾ð¾î¼öÁØÀ» ±¸ºÐÇØ¾ß ÇÑ´Ù´Â °ÍÀº ±× ¼öÁØ¿¡ µû¶ó ¾ð¾îü°è°¡ ¿ÏÀüÈ÷ ´Þ¶ó¾ß ÇÑ´Ù´Â ¸»Àΰ¡? ´ë»ó¼¼°èÀÇ ¾ð¾îü°è¿Í ±× ¸ÞŸ¾ð¾îÀÇ ¾ð¾îü°è, ±× ¸ÞŸ ¸ÞŸ ¾ð¾îÀÇ ¾ð¾îü°è µîÀ¸·Î °è¼ÓµÇ¾î¾ß Çϴ°¡? ±×·¸´Ù¸é ¾ð¾îü°è°¡ ¹«ÇÑÈ÷ ÅðÇàÇÒ °ÍÀÌ´Ù. ±×¸®ÇÏ¿© ºñÆ®°Õ½´Å¸ÀÎÀº ÁöºØ¿¡ ¿À¸£±â À§ÇØ »ç´Ù¸®¸¦ »ç¿ëÇÏÁö¸¸ ¿À¸£°í ³ª¸é »ç´Ù¸®°¡ ÇÊ¿ä¾øµíÀÌ, ƯÁ¤ÇÑ ¼öÁØ¿¡ À̸£¸é ¾ð¾î¸¦ ÃÊ¿ùÇØ¾ß ÇÑ´Ù°í º¸¾Ò´Ù. ÀÌ·¯ÇÑ ¹«ÇÑÅðÇàÀ» ÇÇÇÏ·Á¸é °á±¹ Àڱ⸦ Áö½ÃÇÏ´Â ¾ð¾î¸¦ »ç¿ëÇÒ ¼ö¹Û¿¡ ¾ø°í ±×·¸°Ô µÇ¸é ¼øÈ¯³í¹ý¿¡ ºüÁö°Ô µÈ´Ù. ÀÌ·± ³¹®¿¡ ºÎµúÃÄ ÀÚ±âÁö½ÃÀû ¾ð¾î¸¦ »ç¿ëÇϸ鼵µ ¾Ç¼øÈ¯ ¾Æ´Ñ ¹æ¹ýÀÌ °¡´ÉÇÏ´Ù´Â °ÍÀ» º¸À̰íÀÚ ÇÑ °ÍÀÌ Ä«¸£³³ÀÇ <¾ð¾îÀÇ ³í¸®Àû ±¸¹®·Ð>À̾ú´Ù. ¿©±â¿¡¼ Ä«¸£³³ÀÌ ±¸¼ºÇÑ Àΰø¾ð¾îÀÇ Æ¯»öÀº Kurt Gödel ÀÇ »ê¼úÈ ¹æ¹ýÀ» ÀÚ½ÅÀÇ ±¸¹®·Ð ¼¼ú¿¡ »ç¿ëÇÑ °ÍÀÌ´Ù. ÀÌ¿¡ ÀÇÇÏ¸é ±¸¼º¾ð¾î I ÀÇ ±¸¹®·ÐÀ» ±â¼úÇÏ´Â µ¥ ±×¿Í´Â º°µµÀÇ ´Ù¸¥ ¾ð¾î¸¦ »ç¿ëÇÑ °ÍÀÌ ¾Æ´Ï¶ó ¹Ù·Î ¾ð¾î I ¿¡ ÀÇÇØ ¾ð¾î I ¿¡ °üÇÑ ±¸¹®·ÐÀ» ³íÇß´Ù. ±×´Â À̸¦ ±Ù°Å·Î ºñÆ®°Õ½´Å¸ÀÎó·³ ¹«ÇÑÅðÇàÀ̳ª ¼øÈ¯³í¹ýÀ» ÇÇÇϱâ À§ÇØ ¸»ÇÒ ¼ö ¾ø´Â ±× ¾î¶² °Í¿¡ È£¼ÒÇÑ´Ù¸é ½ÅºñÁÖÀǸ¦ ºÎȰÇÏ´Â °ÍÀ̶ó°í ºñÆÇÇÏ¿´´Ù.
À̰°Àº Ä«¸£³³ÀÇ »ç»óÀº LISPÀÇ È¸±Í(recursion)Ç¥Çö¿¡¼ Àß µå·¯³´Ù. Àü»ê°úÇÐÀÇ °¡Àå ±Ùº»ÀûÀÎ °³³äÁßÀÇ ÇϳªÀΠȸ±Í°³³äÀº LISPÇÔ¼öµéÀÌ ÀÛ¾÷À» ¼öÇàÇϱâ À§ÇØ ÇÏÀ§ Â÷¿øÀÇ ÇÔ¼öµéÀ» È£ÃâÇÏ´Â µ¥µµ ¾²À̰í LISPÇÔ¼ö°¡ ÀÚ±â ÀÚ½ÅÀ» Á÷Á¢ ¶Ç´Â °£Á¢À¸·Î È£ÃâÇÏ´Â µ¥µµ ¾²ÀÌ¸ç ´õ¿íÀÌ ÇÔ¼ö°¡ Àڱ⸦ Á¤ÀÇÇÏ´Â °æ¿ì, ±× Á¤ÀÇ ¾È¿¡¼ ÀÚ½ÅÀ» È£ÃâÇÏ´Â °æ¿ì¿¡µµ ¾²ÀδÙ. ÀÌ ¸¶Áö¸· °æ¿ì´Â ºÐ¸íÈ÷ ¼øÈ¯ÀûÀ̶ó°í ÇÒ ¼ö ÀÖÀ¸³ª ±×°ÍÀº ¾Ç¼øÈ¯ÀÌ ¾Æ´Ï°í Á¤´çÇÏ°Ô Àڱ⸦ Á¤ÀÇÇÏ´Â °ÇÀüÇÑ ¼øÈ¯À̶ó°í ÇϰڴÙ. °¡·É, LISP¿¡¼ ¸®½ºÆ®ÀÇ ¾ÆÅèµéÀÇ ¼ö ¼¿¶ó(ATOM-SAELA)¸¦ Á¤ÀÇÇÏ´Â °æ¿ì »ç¿ëµÇ´Â ȸ±Í°³³äÀÇ »ç·Ê¸¦ »ìÆì º¸¸é °ÇÀüÇÑ ¼øÈ¯ÀÌ °¡´ÉÇÔÀ» ¾Ë ¼ö ÀÖ´Ù.
* (DEFUN ATOM-SAELA (L)
(COND
((NULL L) 0) ;
¾ÆÅè ¾ø´Â °ø¸®½ºÆ®
((ATOM
L) 1) ;
¾ÆÅè Çϳª¸¦ ¼À
(T(+ (ATOM-SAELA (FIRST L)); ù° ¿ø¼Ò¸¦
¼¼°í
(ATOM-SAELA (REST L)))))
³ª¸ÓÁö ¼¾ °ÍÀ» ´õÇÔ.
ÀÌ È¸±ÍÀû Á¤ÀǸ¦ º¸¸é ÇÇÁ¤ÀÇÇ×(definiendum)ÀÎ ATOM-SAELA °¡ Á¤ÀÇÇ×(definiens)ÀÎ COND Çü ¼Ó¿¡ µÎ ¹øÀ̳ª µé¾î ÀÖÀ¸¹Ç·Î ºÐ¸íÈ÷ Á¤ÀÇÇÒ °ÍÀ» Á¤ÀÇÇÏ´Â ¼Ó¿¡¼ »ç¿ëÇÏ´Â ¼øÈ¯³í¹ýÀÌÁö¸¸ ÀÌ Á¤Àǰ¡ ¼øÈ¯À̶ó°í ÇØ¼ À߸øµÈ ¾Ç¼øÈ¯ÀÌ ¾Æ´Ï¶ó Á¤´çÇÑ Á¤ÀÇÀÓÀ» ÀÔÁõÇÑ °ÍÀÌ´Ù. ÀÌ¿Í °°Àº Çü½ÄÀÇ Á¤ÀǷμ ¿ì¸®¿¡°Ô Ä£¼÷ÇÑ °ÍÀº ¼öÇп¡¼ FACTORIALÀ» Á¤ÀÇÇÑ °ÍÀÌ´Ù.
n! = df 1 × 2 × 3 × ... × (n-1) × n
ÀÌ Á¤ÀÇ ¹æ½ÄÀ» LISPÀÇ È¸±ÍÀû Ç¥ÇöÀ¸·Î ¾ÕÀÇ ATOM-SAELA¸¦ Ʋ¿¡ ¸ÂÃß¾î Á¤ÀÇÇÏ¸é ´ÙÀ½°ú °°´Ù.
* (DEFUN FACTORIAL
(N)
(COND ((= N 0) 1)
(T (* N(FACTORIAL
(- N 1))))))
¿©±â¼µµ FACTORIALÀ» Á¤ÀÇÇÔ¿¡ ÀÖ¾î¼ FACTORIALÀ» ÀÌ¿ëÇÏ´Â ÀÚ±âÁö½ÃÀûÀÎ ¼øÈ¯ÀÌÁö¸¸ Á¤´çÇÑ Á¤ÀÇÀÓÀÌ ¹àÇôÁø´Ù. ÀÌ·± Á¤ÀÇ¿¡ ÀÇÇØ¼ FACTORIALÀÇ °¡´ÉÇÔÀÌ ÄÄÇ»ÅÍ·Î °ËÅäµÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. Áï À§¿Í °°Àº Á¤ÀǸ¦ ÇÏ°í ³ª¸é ±× ÀýÂ÷¸íÀ» »ç¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ ±× Á¤ÀÇÇÑ ÀýÂ÷ ³»¿ë¿¡ µû¶ó ÀÏÀ» ¼öÇàÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù.
*(SETF E '(A B C D))
(A B
C D)
*(ATOM-SAELA E)
4
*(FACTORIAL 5)
120
*(*1
2 3 4 5)
120
¿ì¸®´Â Áö±Ý±îÁö AI ÇÁ·Î±×·¡¹Ö ¾ð¾î LISPÀÇ Áö±ØÈ÷ ±âÃÊÀûÀÎ °³³äµé°ú ÀýÂ÷µéÀ» ¼Ò°³ÇÏ°í ±×µéÀÇ Ã¶ÇÐÀûÀÎ ¿¬°ü¼ºÀ» °ËÅäÇØ º¸¾Ò´Ù. LISPÀÇ ±â¼úÀû Ãø¸é¿¡¸¸ Âø¾ÈÇÏ°í ±×°ÍÀÇ ½Ç¿ë¼º¿¡¸¸ ÁýÂøÇÏ´Ù º¸¸é öÇÐÀû ¿¬°ü¼ºÀº ¼ÒÈ¦ÇØÁö±â ½±´Ù. ±×·¯³ª Àΰø¾ð¾î ±¸¼º¿¡´Â öÇÐÀû ÀüÁ¦µéÀÌ °áºÎµÇ¹Ç·Î ±× öÇÐÀû ±âÃÊ¿¡ ´ëÇÑ À½¹Ì¾øÀÌ Àΰø¾ð¾îÀÇ °áÁ¡°ú ÀåÁ¡µéÀ» Á¾ÇÕÀûÀ¸·Î °ËÅäÇϱâ´Â ¾î·Æ´Ù. ¶ÇÇÑ ±×·± °ËÅä¾øÀÌ ÇÑÃþ ´õ ³ôÀº ´Ü°èÀÇ ¾ð¾î¸¦ ±¸¼ºÇÑ´Ù´Â °ÍÀº ±â´ëÇÒ ¼öµµ ¾øÀ» °ÍÀÌ´Ù. »Ó¸¸ ¾Æ´Ï¶ó LISPÀÇ È¸±Í Ç¥Çö °°Àº °Í¿¡¼ º¸¾ÒµíÀÌ AIÀÇ ¾ð¾î¸¦ ÅëÇØ ¿ªÀ¸·Î öÇÐÀû ³Á¦ ÇØ°áÀÇ °¡´É¼ºÀ» ¹ß°ßÇÏ°Ô µÇ¸ç ÀÌ·± ¹®Á¦´Â AI Ȱ¿ëÀÇ Ã¶ÇÐÀÌ Á÷¸éÇÑ °úÁ¦ÀÌ´Ù.