¥»¥Þ¥ó¥Æ¥£¥Ã¥¯¥¦¥§¥Ö¡¦¥À¥¤¥¢¥ê¡¼

¾®½ÐÀ¿Æó¤Î¸Ä¿ÍŪ¤Ê¶È̳Æü»ï

º£Æü¤Ï¡ÖÂè30²ó IEC/SyC SM¹ñÆâ°Ñ°÷²ñ¡×¤Ç¤·¤¿¤¬¡¢¤½¤³¤Ç»×¤¤¤â¤«¤±¤º¥ª¥ó¥È¥í¥¸¡¼¤Ë¤Ä¤¤¤Æ¿·¤·¤¤Ïäò¤­¤¯¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£¤½¤ì¤¬¥¿¥¤¥È¥ë¤Ë·Ç¤²¤¿CAD/CAM¤È¥ª¥ó¥È¥í¥¸¡¼¤Î´Ø·¸¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£
À½Â¤¶È¤Ë¤ª¤±¤ë¥ª¥ó¥È¥í¥¸¡¼¤ÎÏäϽ¾Íè¤Ï¡Ö¥Ç¥¸¥¿¥ë¥Ä¥¤¥ó¤ÎÀ¤³¦¤Ë¤ª¤±¤ë°Ọ̃ŪÁê¸ß±¿ÍÑÀ­¤Ë¤Ï¥ª¥ó¥È¥í¥¸¡Ý¤¬É¬¿Ü¡×¤È¤¤¤¦¤³¤È¤Ç¤·¤¿¤¬¡¢º£Æü¤ÎÏäǤϣ³¼¡¸µCAD¤ÎʬÌî¤Ç¤Ï¡¢¥¸¥ª¥á¥È¥ê¡¼¤Ë¤Ä¤¤¤Æ¤ÏCAD¥Ç¡¼¥¿¤Î¥Ç¡¼¥¿ÊÑ´¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤Û¤ÜÌäÂ꤬²ò·è¤µ¤ì¤Ä¤Ä¤¢¤Ã¤Æ¡¢CAD¤Ë¤ª¤±¤ëɽÌÌÀ­¾õ¤À¤ÎÍÏÀܵ­¹æ¤À¤Î¤½¤Î¾¤Î¡ÖÃíµ­¡¦Â°À­¡×¾ðÊó¤Î°ÕÌ£¾ðÊó¤ò¤É¤¦Î®Ä̤µ¤»¤ë¤«¤È¤¤¤¦¤È¤³¤í¤Ë¾ÇÅÀ¤¬°Ü¤Ã¤Æ¤¤¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤·¤¿¡£¤½¤³¤Ç¤³¤ì¤é¤Î¾ðÊó¤Î¥á¥¿¥Ç¡¼¥¿¡¢¥ª¥ó¥È¥í¥¸¡¼¤È¤½¤Îɸ½à²½¤Ë¶½Ì£¤¬½¸¤Þ¤Ã¤Æ¤¤¤ë¤é¤·¤¤¡£¥¦¡¼¥ó¡¢¤³¤ì¤Ï¤È¤Ã¤Æ¤âǼÆÀ¤¬¤¤¤¯Ïäǡ¢¤Ê¤ë¤Û¤É¤Í¡¢¤µ¤â¤¢¤ê¤Ê¤ó¤È»×¤¤¤Þ¤·¤¿¡£
¤µ¤Ã¤½¤¯Copilot¤Ë¤âʹ¤¤¤Æ¤ß¤Þ¤·¤¿¡£

¼ÁÌä¡§CAD/CAM ¤È¥ª¥ó¥È¥í¥¸¡¼¤Î´Ø·¸¤Ë¤Ä¤¤¤Æ
·ëÏÀ¡§CAD/CAM ¤È¥ª¥ó¥È¥í¥¸¡¼¤Î´Ø·¸¤Ï¡ÖÀ½Â¤Ãμ±¤Î·Á¼°²½¡¦¶¦Í­¡¦¼«Æ°¿äÏÀ¡×¤ò²Äǽ¤Ë¤¹¤ë´ðÈפǤ¢¤ê¡¢°Û¼ï CAD/CAM ¥·¥¹¥Æ¥à´Ö¤Î °Ọ̃ۏߴ¹À­ ¤ò¼Â¸½¤¹¤ë¤¿¤á¤Î¸°¤È¤Ê¤ë¡£

¤¢¤Ê¤¿¤¬ WordNet ¤ä¥»¥Þ¥ó¥Æ¥£¥Ã¥¯µ»½Ñ¤Ë¿¼¤¤´Ø¿´¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤òƧ¤Þ¤¨¤ë¤È¡¢
CAD/CAM ¤È¥ª¥ó¥È¥í¥¸¡¼¤Î´Ø·¸¤Ï¡Ö¹©³ØÅªÃ챤ò·Á¼°°ÕÌ£ÏÀ¤Ç°·¤¦¡×¤È¤¤¤¦Èó¾ï¤ËÌÌÇò¤¤Îΰè¤Ç¤¹¡£

🧩 1. CAD/CAM ¤È¥ª¥ó¥È¥í¥¸¡¼¤Î´ðËÜŪ¤ÊÀÜÅÀ
CAD¡ÊÀß·×¡Ë¤È CAM¡Ê²Ã¹©¡Ë¤ÏËÜÍèÊ̤ÎÀ¤³¦´Ñ¤ò»ý¤Ä¤¿¤á¡¢
·Á¾õ¾ðÊó¡ÊCAD¡Ë¤È²Ã¹©¾ðÊó¡ÊCAM¡Ë¤ò°Ọ̃Ū¤ËÀܳ¤¹¤ë¤³¤È¤¬Æñ¤·¤¤¡£

¤½¤³¤ÇÅо줹¤ë¤Î¤¬ ¥ª¥ó¥È¥í¥¸¡¼¡£
CAD¡§·Á¾õ¡¦À£Ë¡¡¦¥Õ¥£¡¼¥Á¥ã¡Ê·ê¡¢¹Â¡¢Ì̼è¤ê¡Ä¡Ë
CAM¡§²Ã¹©¹©Äø¡¦¹©¶ñ¡¦ÀÚºï¾ò·ï¡¦NC ¥³¡¼¥É

¥ª¥ó¥È¥í¥¸¡¼¡§¤³¤ì¤é¤ò ·Á¼°Åª¤Ëµ­½Ò¤·¡¢°Ọ̃Ū¤ËÂбþÉÕ¤±¤ë¤¿¤á¤Î¸ì×ÃÂηÏ
¤Ä¤Þ¤ê¥ª¥ó¥È¥í¥¸¡¼¤Ï CAD ¤È CAM ¤Î¡Ö¶¦Ä̸À¸ì¡× ¤òºî¤ëÌò³ä¤ò²Ì¤¿¤·¤Þ¤¹¡£

🧭 2. ¸¦µæ¤Ç¼¨¤µ¤ì¤Æ¤¤¤ë¶ñÂÎŪ¤Ê´Ø·¸À­
🔹 (A) CAD ¥Ç¡¼¥¿ ¢ª ¥»¥Þ¥ó¥Æ¥£¥Ã¥¯¥°¥é¥Õ²½
IEEE ¤Î¸¦µæ¤Ç¤Ï¡¢CAD ¥Ç¡¼¥¿¤ò °ÕÌ£¥°¥é¥Õ¡Êsemantic graph¡Ë¤ËÊÑ´¹¤·¡¢
¤½¤³¤«¤é ÎΰèÃ챤òÃê½Ð¤¹¤ë¼êË¡¤¬¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¡Ö·Á¾õ¥Ç¡¼¥¿¤òñ¤Ê¤ë¥¸¥ª¥á¥È¥ê¤Ç¤Ï¤Ê¤¯¡¢°ÕÌ£¤ò»ý¤Ä¹½Â¤¤È¤·¤Æ°·¤¦¡×»î¤ß¤Ç¤¹¡£

🔹 (B) CAD ¥Õ¥£¡¼¥Á¥ã¤Î¥ª¥ó¥È¥í¥¸¡¼¤Ë¤è¤ë¾È¹ç¡¦ÊÑ´¹
ScienceDirect ¤Î¸¦µæ¤Ç¤Ï¡¢
°Û¤Ê¤ë CAD ¥·¥¹¥Æ¥à´Ö¤Ç¥Õ¥£¡¼¥Á¥ã¤ò¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤¿¤á¤Ë¥ª¥ó¥È¥í¥¸¡¼¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
Îã¡§
SolidWorks ¤Î ¡ÈCut-Extrude¡É
CATIA ¤Î ¡ÈPocket¡É
¢ª ¤³¤ì¤é¤ò¡Ö°Ọ̃Ū¤ËƱ¤¸·ê²Ã¹©¡×¤È¤·¤Æ°·¤¦¤¿¤á¤Î¸ì×ÃÂηϤ¬É¬Íס£

🔹 (C) CAM ¥â¥Ç¥ë¤ÎÃμ±¥°¥é¥Õ²½¤È CAM ¥ª¥ó¥È¥í¥¸¡¼
Springer ¤Î¸¦µæ¤Ç¤Ï¡¢CAM ¤Î²Ã¹©Ã챤ò¥×¥í¥»¥¹Ãμ±¥°¥é¥Õ¡ÊProcess Knowledge Graph¡Ë ¤È¤·¤Æ¹½Â¤²½¤·¡¢¤µ¤é¤Ë CAM ¥ª¥ó¥È¥í¥¸¡¼ ¤ò¹½ÃÛ¤·¤Æ°Ọ̃ŪÀ°¹çÀ­¤ò¼è¤Ã¤Æ¤¤¤Þ¤¹¡£

CAD ¥â¥Ç¥ë
NC ²Ã¹©¥×¥í¥»¥¹

¹©¶ñ¡¦¾ò·ï
¤³¤ì¤é¤òÅý¹ç¤·¡¢¿äÏÀ¥ë¡¼¥ë¤Ç°ÅÌÛÃΤòÃê½Ð¤¹¤ë»ÅÁȤߤǤ¹¡£

🏗️ 3. ¤Ê¤¼¥ª¥ó¥È¥í¥¸¡¼¤¬É¬ÍפʤΤ«¡ÊËܼÁŪÍýͳ¡Ë
­¡ °Û¼ï CAD/CAM ¤Î¸ß´¹À­ÌäÂê¤ò²ò·è¤¹¤ë
CAD/CAM ¤Ï¥á¡¼¥«¡¼¤´¤È¤Ë³µÇ°ÂηϤ¬°ã¤¦¤¿¤á¡¢
¡ÖƱ¤¸·Á¾õ¤Ê¤Î¤ËÊ̤Υե£¡¼¥Á¥ã¤È¤·¤Æ°·¤ï¤ì¤ë¡×ÌäÂ꤬µ¯¤­¤ë¡£
¥ª¥ó¥È¥í¥¸¡¼¤Ï¤³¤Îº¹°Û¤ò °ÕÌ£¥ì¥Ù¥ë¤ÇµÛ¼ý¤¹¤ë¡£

­¢ ²Ã¹©Ãμ±¤Î·Á¼°²½¡¦ºÆÍøÍÑ
½ÏÎýµ»½Ñ¼Ô¤Î°ÅÌÛÃΡʲù©½ç½ø¡¢¹©¶ñÁªÂò¡¢¾ò·ïÀßÄê¡Ë¤ò
·Á¼°ÃΤȤ·¤ÆÉ½¸½¤·¡¢¿äÏÀ²Äǽ¤Ë¤¹¤ë¡£

­£ ¼«Æ°²½¡¦¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥È²Ã¹©¤Î´ðÈ×
¼«Æ° NC ¥×¥í¥°¥é¥ß¥ó¥°
²Ã¹©¹©Äø¤Î¼«Æ°À¸À®
¹©¶ñÁªÂò¤Î¼«Æ°¿äÏÀ
²Ã¹©²ÄǽÀ­¥Á¥§¥Ã¥¯¡Êmanufacturability analysis¡Ë
¤³¤ì¤é¤Ï¤¹¤Ù¤Æ °Ọ̃Ū¤ËÅý°ì¤µ¤ì¤¿Ãμ±ÂηϤ¬É¬Íס£

🧠 4. CAD/CAM ¡ß ¥ª¥ó¥È¥í¥¸¡¼¤Î¹½Â¤¡Ê³µÇ°¿Þ¡Ë

🔧 5. ¼Â̳¤Ç¤Î±þÍÑÎã¡Ê¤¢¤Ê¤¿¤Îµ»½Ñ»Ö¸þ¤Ë¹ç¤ï¤»¤Æ¡Ë
¡ü Semantic Web µ»½Ñ¡ÊRDF/OWL¡Ë¤Ë¤è¤ë CAD/CAM Åý¹ç
CAD ¥Õ¥£¡¼¥Á¥ã ¢ª OWL ¥¯¥é¥¹
²Ã¹©¹©Äø ¢ª RDF ¥×¥í¥Ñ¥Æ¥£
¹©¶ñ¡¦¾ò·ï ¢ª ¸ÄÂΡÊindividual¡Ë
SWRL ¥ë¡¼¥ë ¢ª ²Ã¹©½ç½ø¤Î¿äÏÀ

¡ü WordNet Ū¸ì×ûñ¸»¤È¤ÎÀܳ
¤¢¤Ê¤¿¤¬´Ø¿´¤ò»ý¤Ä WordNet ¤Î¤è¤¦¤Ê¸ì×ÃÂηϤϡ¢
¹©³ØÎΰè¤Ç¤Ï Engineering WordNet ¤Î¤è¤¦¤Ê·Á¤Ç±þÍѤµ¤ì¤ë¡£

CAD/CAM ¥ª¥ó¥È¥í¥¸¡¼¤Ï
¹©³Ø¸ì×äÎÀìÌçŪ¥µ¥Ö¥»¥Ã¥È¤È¤·¤Æ¹½ÃÛ¤µ¤ì¤ë¤³¤È¤¬Â¿¤¤¡£

📐 6. ¤Þ¤È¤á¡§CAD/CAM ¤È¥ª¥ó¥È¥í¥¸¡¼¤Î´Ø·¸¤Ï¡Ö°ÕÌ£¤Î¶¶ÅϤ·¡×
CAD¡§·Á¾õ¤ÎÀ¤³¦
CAM¡§²Ã¹©¤ÎÀ¤³¦
¥ª¥ó¥È¥í¥¸¡¼¡§Î¾¼Ô¤ò°Ọ̃Ū¤ËÀܳ¤·¡¢Ãμ±¤È¤·¤Æ°·¤¦¤¿¤á¤Î´ðÈ×

¤¢¤Ê¤¿¤Î¶½Ì£Îΰè¡Ê¸ì×ûñ¸»¡¢·Á¼°°ÕÌ£ÏÀ¡¢¥»¥Þ¥ó¥Æ¥£¥Ã¥¯¥¦¥§¥Ö¡Ë¤È
µ¡³£¹©³Ø¤ÎÀ¤³¦¤¬ ºÇ¤âÈþ¤·¤¯¸òº¹¤¹¤ëÎΰè¤Ç¤¹¡£

¼¡¤Ë¿¼·¡¤ê¤¹¤ë¤Ê¤é
CAD ¥Õ¥£¡¼¥Á¥ã¥ª¥ó¥È¥í¥¸¡¼
CAM ¥×¥í¥»¥¹Ãμ±¥°¥é¥Õ
À½Â¤¥ª¥ó¥È¥í¥¸¡¼¤Îɸ½à²½
WordNet ¤È¹©³Ø¥ª¥ó¥È¥í¥¸¡¼¤Î´Ø·¸
¤É¤ÎÊý¸þ¤Ë¿Ê¤á¤Þ¤¹¤«¡©

¤¤¤ä¡¼¡¢¤¢¤¤¤«¤ï¤é¤ºCopilot¤â¤¹¤´¤¤¤Ç¤¹¤Í¡£CAD¥Õ¥£¡¼¥Á¥ã¥ª¥ó¥È¥í¥¸¡¼¤Ã¤Æ¤À¤ì¤«¤ä¤Ã¤Æ¤¤¤ë¤Î¤«¤·¤é¡©¤½¤ì¤Ë¤·¤Æ¤â¤¹¤Ç¤ËISO¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥È¥Ã¥×¥ª¥ó¥È¥í¥¸¡¼¤«¤é¤³¤³¤Þ¤Ç²¼¤ê¤Æ¤¯¤ë¤Î¤Ï¡¢¤Þ¤À¤Þ¤À¤È¤ó¤Ç¤â¤Ê¤¯µ÷Î¥¤¬±ó¤¤¤È¸À¤ï¤¶¤ë¤òÆÀ¤Þ¤»¤ó¡£ÊÀ¼Ò¤È¤·¤Æ¤Ï¤¼¤ÒCAD¥á¡¼¥«¤È¶¨ÎϤ·¤Æ¥Á¥ã¥ì¥ó¥¸¤·¤¿¤¤¤È¤³¤í¤Ç¤¹¡£

ACL ¤Ç Prolog ¤òÍ׵᤹¤ë

Allegro Common Lisp (ACL) ¤Ë¤ÏPAIP Prolog ¤«¤éȯŸ¤µ¤»¤¿ Prolog ¤¬¥é¥¤¥Ö¥é¥ê¤È¤·¤ÆÍѰդµ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤Þ¤Ç¤Îµ­»ö¤Ç¤Ï¥Õ¥ê¡¼¤Ç»È¤¨¤ë Allegro Common Lisp free Express ¤Î¥À¥¦¥ó¥í¡¼¥É¤È¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤òÀâÌÀ¤·¡¢¤½¤Î modern Lisp ¤Ø¤ÎÊÑ´¹ÊýË¡¤òÀâÌÀ¤·¤¿¡£¤³¤³¤Ç¤Ï¤½¤Î modern Lisp ¤Ë¤ª¤±¤ë¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ¤Î Allegro Prolog (AProlog) ¤ò»È¤Ã¤¿ Prolog ¥×¥í¥°¥é¥ß¥ó¥°ÊýË¡¤Ë¤Ä¤¤¤Æµ­½Ò¤¹¤ë¡£

AProlog ¤ÎËܼÁ¤Ïɸ½àŪ¤Ê Prolog ¤È²¿¤éÂå¤ï¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¤¬¡¢¤½¤Î½ñ¤­Êý¤Ïɸ½à Prolog ¤Î¥·¥ó¥¿¥Ã¥¯¥¹¤È°Û¤Ê¤ê Lisp ¤ÎS¼°¤ÈÎà»÷¤Ç¤¢¤ë¡£¤µ¤é¤Ë PAIP Prolog ¤Ë¤Ï¤Ê¤«¤Ã¤¿ Lisp ¤È¤Î°ìÂβ½¤ä¡¢CLOS ¤È¤ÎÅý¹ç¡¢¤µ¤é¤ËºÇ¿·ÈǤˤϳ°Éô¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤Æ AllegroCache ¤È¤ÎÀܳ¤Þ¤ÇÍѰդµ¤ì¤Æ¤¤¤ë¡£¤¿¤À¤·¡¢¤³¤³¤Ç¤ÏÄ̾ï¤Î Prolog ¤È¤·¤Æ¤Î¾Ò²ð¤Þ¤Ç¤È¤¹¤ë¤¬¡¢¼Â¤Ï PAIP ¤òÆÉ¤ó¤À¤À¤±¤Ç¤ÏÁȹþ¤ß½Ò¸ì¤Î»È¤¤Êý¤Ï Prolog ¤Ë´·¤ì¤¿¿Í¤Ç¤Ê¤¤¤È¤è¤¯¤ï¤«¤é¤Ê¤¤¡£¤³¤³¤Ç¤Ï Prolog ½é¿´¼Ô¤Ç¤âʬ¤«¤ë¤è¤¦¤ËÀâÌÀ¤¹¤ë¤Ä¤â¤ê¤Ç¤¢¤ë¡£

Allegro Lisp with IDE ¤Þ¤¿¤Ï Allegro modern Lisp (mlisp) ¤òΩ¤Á¾å¤²¤¿¾õÂ֤Ǽ¡¤Î¤è¤¦¤Ë¤¹¤ë¡£°Ê¸å¤Ï¾ï¤Ë¤³¤Î´Ä¶­¤Ç¥×¥í¥°¥é¥à¤¹¤ë¡£

cg-user(1): (require :prolog)
; Fast loading C:\acl11.0express\code\prolog.fasl
t
cg-user(2): (in-package :prolog)
#<The prolog package>
prolog(3): (inspect '<--)
nil
prolog(4): (describe '<--)
<-- is a tenured symbol.
  It is unbound.
  It is external in the prolog package.
  Its function binding is #<macro <-- @ #x20e141da>
    which macro takes arguments (&rest clause)
  Its property list has these indicator/value pairs:
excl::simple-section-type   :prolog
excl::simple-section-parser  #<Function (:internal (:top-level-form "sys:;prolog;prologcp.cl" 48278) 0) @ #x20e2dd8a>
excl::%fun-documentation    "Add a clause to the data base."
prolog(5): 

= ½Ò¸ì¤È == ½Ò¸ì

Prolog ¤Ë¤ª¤±¤ëÅù²ÁÀ­¥Á¥§¥Ã¥¯¤Çɸ½àŪ¤Ë»È¤ï¤ì¤ë¤Î¤Ï = ½Ò¸ì¤Ç¤¢¤í¤¦¡£Ivan Bratko ¤Ï¤³¤ì¤òÊÑ¿ô¤â¹Íθ¤·¤ÆÆó¤Ä¤Î¹à¤¬¡Ö¥Þ¥Ã¥Á¤¹¤ì¤Ð¡×¤È¸À¤Ã¤Æ¤¤¤ë¡£¥Þ¥Ã¥Á¤¹¤ë¤È¤ÏÛ£Ëæ¤Ê¸ÀÍÕ¤À¤¬ AProlog ¤Ç¤Ï¤ª¤è¤½¼¡¤Î¤è¤¦¤Ê´Ø¿ô¤Ç¤¢¤ë¡£

(defun =/2 (trail cont ?arg1 ?arg2)
  (if (unify! trail ?arg1 ?arg2)
      (funcall cont)))

¤¹¤Ê¤ï¤Á¡¢¤Õ¤¿¤Ä¤Î°ú¿ô¤¬Ã±°ì²½¤Ç¤­¤ì¤Ð¤³¤ÎÀ᤬¥´¡¼¥ë¤È¤·¤ÆÀ®¸ù¤·¤Æ¡¢¼¡¤Î¥´¡¼¥ë¤Î¾ÚÌÀ¤Ë¿Ê¤à¡£´Êñ¤ÊÎã¤Ç¤ä¤Ã¤Æ¤ß¤è¤¦¡£

prolog(3): (?- (= 3 3))
Yes;
No.
prolog(4): (?- (= x x))
Yes;
No.
prolog(5): (?- (= ?x 3))
?x = 3;
No.
prolog(6): (?- (= x 3))
; While compiling #'(flet (:anonymous-lambda 149) prolog-clauses) at top level:
Warning: cond consequent (de-consify (make-predicate 'show-prolog-vars '2) trail cont 'nil 'nil) to nil predicate is unreachable
Problem detected when processing
       (when nil ...)
inside (block prolog-clauses ...)
inside (comp::named-function-1 ...)
inside (excl:compiler-let ...)
inside (the excl::known-function ...)
inside (excl:named-function ...)
inside (let ...)
inside (flet ((prolog-clauses (trail cont) ...)) ...)
inside (prolog (= x ...) ...)
inside (catch (quote top-level-prove) ...)
No.
prolog(7): (?- (= 3 4))
; While compiling #'(flet (:anonymous-lambda 150) prolog-clauses) at top level:
Warning: cond consequent (de-consify (make-predicate 'show-prolog-vars '2) trail cont 'nil 'nil) to nil predicate is unreachable
Problem detected when processing
       (when nil ...)
inside (block prolog-clauses ...)
inside (comp::named-function-1 ...)
inside (excl:compiler-let ...)
inside (the excl::known-function ...)
inside (excl:named-function ...)
inside (let ...)
inside (flet ((prolog-clauses (trail cont) ...)) ...)
inside (prolog (= 3 ...) ...)
inside (catch (quote top-level-prove) ...)
No.
prolog(8): 

ºÇ¸å¤Î£²Îã¤Ïñ°ì²½¤Ç¤­¤Ê¤¤¤â¤Î¤òñ°ì²½¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤«¤é¡¢No. ¤¬½ÐÎϤµ¤ì¤ë¤Î¤ÏÅöÁ³¤Î¤³¤È¤Ç¤¢¤ë¤¬¡¢¥³¥ó¥Ñ¥¤¥ë¤·¤è¤¦¤È¤·¤Æ¤½¤ÎºÇÃæ¤Ë·Ù¹ð¤¬½ÐÎϤµ¤ì¤Æ¤¤¤ë¡£

== ½Ò¸ì¤Ï¤è¤ê¤½¤ì¤è¤ê¸·¤·¤¯¤Æ¤¹¤Ç¤Ëñ°ì²½ºÑ¤ß¤Î¾ì¹ç¤Ë¡¢Î¾¼Ô¤¬ dereference ¤·¤Æ°ìÃפ¹¤ì¤ÐÀ®¸ù¤È¤¹¤ë¡£Ivan Bratko ¤Ï¤³¤ì¤ò¡ÖƱ°ì(identical)¤Ç¤¢¤ì¤Ð¡×¤Èɽ¸½¤·¤Æ¤¤¤ë¡£AProlog ¤Ç¤Ï¤ª¤è¤½¼¡¤Î¤è¤¦¤Ê´Ø¿ô¤Ç¤¢¤ë¡£

(defun ==/2 (trail cont ?arg1 ?arg2)
  "Are the two arguments EQUAL with no unification,
  but with dereferencing?  If so, succeed."
  (declare (ignore trail))
  (if (deref-equal ?arg1 ?arg2)
      (funcall cont)))

´Êñ¤ÊÎã¤Ç¤ä¤Ã¤Æ¤ß¤è¤¦¡£

prolog(3): (?- (== 3 3))
Yes;
No.
prolog(4): (?- (== x x))
Yes;
No.
prolog(5): (?- (== ?x 3))
No.
prolog(6): (<- (== ?x 4))
==
prolog(7): (?- (= ?x 4))
?x = 4;
No.
prolog(8): (?- (= x x))
Yes;
No.
prolog(9): (?- (== ?x ?x))
?x = 4;
No.
prolog(10): 

¼Â»ÜÎ㣳¤È£´¤Ï literaly equal ¤À¤«¤éÅöÁ³À®¸ù¤¹¤ë¤¬¡¢¼Â»ÜÎ㣵¤Ï¤½¤ì¤Þ¤Ç¤Ë ?x ÊÑ¿ô¤Ë¤Ï²¿¤âñ°ì²½¤Ï¤«¤«¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç·ë²Ì¤Ï No. ¤Ç¤¢¤ë¡£¼Â»ÜÎ㣶¤Ç ?x ¤Ï 4 ¤Èñ°ì²½¤µ¤ì¡¢¤½¤Î·ë²Ì¡¢¼Â»ÜÎ㣷¤ÇÅú¤¨¤¬ÆÀ¤é¤ì¤¿¡£¼Â»ÜÎ㣹¤Ç¤Ï derefererence ¤¬À®¸ù¤·¤Æ¤½¤ì°ÊÁ°¤Ëñ°ì²½¤µ¤ì¤Æ¤¤¤¿Åú¤¨ 4 ¤¬ÊÖ¤µ¤ì¤¿¤é¤·¤¤¡£

(true) ¤È (fail)

Common Lisp ¥Ù¡¼¥¹¤Î Prolog ¤Ë¤ª¤±¤ëÁȹþ¤ß½Ò¸ì¤È¤Ï Prolog ½Ò¸ì̾¤È¥¢¥ê¥Æ¥£¤òÁȤ߹ç¤ï¤»¤¿¥ê¥¹¥×´Ø¿ô¤Î¤³¤È¤Ç¤¢¤ë¡£¤³¤³¤ÇºÇ¤â´Êñ¤ÊÁȤ߹þ¤ß½Ò¸ì¤È¤·¤Æ¡¢¤É¤ó¤Ê¤È¤­¤Ë¤â¿¿¤È¤Ê¤ë true ½Ò¸ì¤È¡¢¤É¤ó¤Ê¾ì¹ç¤Ë¤âµ¶¤È¤Ê¤ë fail ½Ò¸ì¤Ë¤Ä¤¤¤Æ¹Í¤¨¤ë¡£¤è¤êÀµ³Î¤Ë¸À¤¨¤Ð (true) ¤Ç¤Ï¾ï¤Ë¾ÚÌÀ¤¬À®¸ù¤·¡¢¿äÏÀ¤Ï¼¡¤Ë¿Ê¤à¤¬¡¢(fail) ¤Ç¤Ï¾ï¤Ë¼ºÇÔ¤·¿äÏÀ¤Ï·Ñ³¤µ¤ì¤º¡¢¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤¬µ¯¤³¤ë¡£

prolog(3): (?- (true))
Yes;
No.
prolog(4): (?- (fail))
No.
prolog(5): 

°ì±þ´üÂÔÄÌ¤êÆ°¤¤¤¿¤è¤¦¤À¡£¤Á¤Ê¤ß¤Ë¡¢true/0 ¤È fail/0 ´Ø¿ô¤Ï¤ª¤è¤½¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£

(defun true/0 (trail cont)
  (declare (ignore trail))
  (funcall cont))

(defun fail/0 (trail cont)
  (declare (ignore trail cont))
  nil)

¤¹¤Ê¤ï¤Á true/0 ¤Ç¤Ï¾ï¤ËÀ®¸ù·Ñ³¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢ fail/0 ¤Ç¤Ï¾ï¤Ë¤Ê¤Ë¤âµ¯¤³¤é¤Ê¤¤¡£

(= ?foo ?bar) ¤È (is ?foo form)

ÁȤ߹þ¤ß½Ò¸ì¤Î = ¤Ïñ½ã¤ËÆó¤Ä¤Î°ú¿ô¤òñ°ì²½¤¹¤ë¤¬¡¢is ¤Ï£²ÈÖÌܤΰú¿ô¤ò¥ê¥¹¥×½ñ¼°¤È¤·¤ÆÉ¾²Á¤·¤Æ¤«¤éñ°ì²½¤¹¤ë¡£

prolog(3): (?- (= ?one 1))
?one = 1;
No.
prolog(4): (?- (= ?two (+ 1 1)))
?two = (+ 1 1);
No.
prolog(5): (?- (is ?one 1))
?one = 1;
No.
prolog(6): (?- (is ?two (+ 1 1)))
?two = 2;
No.
prolog(7): 

¤Á¤Ê¤ß¤Ë¡¢=/2 ¤È is/2 ´Ø¿ô¤Ï¤ª¤è¤½¼¡¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£

(defun ==/2 (trail cont ?arg1 ?arg2)
  "Are the two arguments EQUAL with no unification,
  but with dereferencing?  If so, succeed."
  (declare (ignore trail))
  (if (deref-equal ?arg1 ?arg2)
      (funcall cont)))

(defun is/2 (trail cont var exp)
  ;; Example: (is ?x (+ 3 (* ?y (+ ?z 4))))
  ;; Or even: (is (?x ?y ?x) (cons (first ?z) ?l))
  (when (catch 'deref-fail
	  (unify! trail var (eval (deref-exp-fail exp))))
    (funcall cont)))

¤¿¤À¤·¡¢¤³¤Î is/2 ¤Î¥³¡¼¥É¤Ï AProlog 0.9 ¤Î¤â¤Î¤Ç¤¢¤ê¡¢1.1.2 ¤Ç¤Ï¤µ¤é¤Ë¹âÅ٤˿Ãͤ⼡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¼õ¤±¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

prolog(4): (?- (is (?div ?rem) (multiple-value-list (truncate 11 3))))
?div = 3
?rem = 2;
No.
prolog(5): 

(lisp form) ¤È (call goal)

(lisp form) ¤Ï°ú¿ô¤ò Lisp ¤Î½ñ¼°¤È¤·¤ÆÉ¾²Á¤¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢(call goal) ¤Ï°ú¿ô¤ò Prolog ¤Î°ì¤Ä¤Î¥´¡¼¥ë¤È¤·¤Æ¾ÚÌÀ¤·¤è¤¦¤È¤¹¤ë¡£°Ê²¼¤Ï Aprolg 0.9 ¤Ë¤ª¤±¤ë¥³¡¼¥É¤Ç¤¢¤ë¡£

(defun lisp/2 (trail cont result exp)
  "Execcute exp and unify the result with the first argument."
  (if (and (not (find-if-anywhere #'unbound-var-p exp))
	   (catch 'deref-fail
	     (let ((e (deref-exp-fail exp)))
	       ;;(format t "~s =>> ~s~%" exp e)
	       (unify! trail result (eval e)))))
      (funcall cont)))

(defun call/1 (trail cont goal)
  "Try to prove goal by calling it."
  (deref goal)
  (apply (make-predicate (first goal)
                         (length (args goal)))
	 trail cont (args goal)))

lisp/2 ¤ÎÃæ¤Ë eval ¤¬¤¢¤ë¤³¤È¤ËÃíÌܤµ¤ì¤¿¤¤¡£

AProlog ¤Ë¤Ïɸ½à Prolog ¤Ë¤¢¤ë > ½Ò¸ì¤ä < ½Ò¸ì¤ÏÍѰդµ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢lisp/2 ¤ò»È¤¨¤Ð¤½¤Î¤è¤¦¤ÊÁȹþ¤ß½Ò¸ì¤ÏɬÍפʤ¤¤È¤¤¤¦¤³¤È¤¬¤ï¤«¤ë¡£

prolog(3): (?- (lisp ?x (> 3 2)))
?x = t;
No.
prolog(4): (?- (lisp ?x (< 3 2)))
?x = ()
No.
prolog(5): 

AProlog ¤Ë¤Ï if/2 ¤È if/3 ¤ÎÁȸ«¹þ¤ß½Ò¸ì¤¬¤¢¤ë¤¬¡¢call/1 ¤ò¤Ä¤«¤Ã¤Æ¡¢Æ±ÍͤʽҸì¤òÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£²Ã¤¨¤Æ call/1 ¤ò¤Ä¤«¤Ã¤Æ and ¤È or ¤ò Prolog ½Ò¸ì¤È¤·¤ÆÆ³Æþ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£

prolog(2): (?- (if (true) (= ?foo OK) (= ?foo NG)))
?foo = OK;
No.
prolog(3): (?- (if (fail) (= ?foo OK) (= ?foo NG)))
?foo = NG;
No.
prolog(4): (<-- (my-if ?test ?then) (my-if ?then ?else (fail)))
my-if
prolog(5): (<- (my-if ?test ?then ?else) (call ?test) ! (call ?then))
my-if
prolog(6): (<- (my-if ?test ?then ?else) (call ?else))
my-if
prolog(7): (?- (my-if (true) (= ?foo OK) (= ?foo NG)))
?foo = OK;
No.
prolog(8): (?- (my-if (fail) (= ?foo OK) (= ?foo NG)))
?foo = NG;
No.
prolog(9): (<-- (or ?a ?b) (call ?a))
or
prolog(10): (<- (or ?a ?b) (call ?b))
or
prolog(11): (<-- (and ?a ?b) (call ?a) (call ?b))
and
prolog(12): (?- (or (= 1 2) (= 2 2)))
; While compiling #'(flet (:anonymous-lambda 150) prolog-clauses) at top level:
Warning: cond consequent (de-consify (make-predicate 'show-prolog-vars '2) trail cont 'nil 'nil) to nil predicate is unreachable
Problem detected when processing
       (when nil ...)
inside (let* ((trail trail) (old-ndx (trail-ndx trail))) ...)
inside <...>
inside (with-undoing-bindings (trail) ...)
inside (block prolog-clauses ...)
inside (comp::named-function-1 ...)
inside (excl:compiler-let ...)
inside (the excl::known-function ...)
inside (excl:named-function ...)
inside (let ...)
inside (flet ((prolog-clauses (trail cont) ...)) ...)
inside (prolog ...)
inside (catch (quote top-level-prove) ...)
Yes;
No.
prolog(13): (?- (and (= 1 2) (= 2 2)))
; While compiling #'(flet (:anonymous-lambda 151) prolog-clauses) at top level:
Warning: cond consequent (when t (de-consify (make-predicate 'show-prolog-vars '2) trail cont 'nil 'nil)) to nil predicate is unreachable
Problem detected when processing
       (when nil ...)
inside (block prolog-clauses ...)
inside (comp::named-function-1 ...)
inside (excl:compiler-let ...)
inside (the excl::known-function ...)
inside (excl:named-function ...)
inside (let ...)
inside (flet ((prolog-clauses (trail cont) ...)) ...)
inside (prolog ...)
inside (catch (quote top-level-prove) ...)
No.
prolog(14): 
¥Þ¥¯¥í <-- ¤Ï AProlog ¤ËÆÃÍ­¤Îµ¡Ç½¤Ç¡¢³ºÅö¤¹¤ë ½Ò¸ì/¥¢¥ê¥Æ¥£ ¤Ë¤Ä¤¤¤Æ¤½¤ì¤Þ¤Ç¤Î <- ¾ðÊó¤ò¤¹¤Ù¤Æ¥¯¥ê¥¢¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¡¢Ä̾ï¤Ï¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Î½Ð¸½¾ì½ê¤Ë <- ¤ÎÂå¤ï¤ê¤ËÃÖ¤¯¤â¤Î¤Ç¤¢¤ë¡£

Áȹþ¤ß¤Î if/2¡¢if/3 ¤ÈƱÍͤ˾嵭 my-if ÄêµÁ¤Ë¤è¤Ã¤Æ my-if ¤âÀµ¤·¤¯Æ°¤¯¤³¤È¤ò³Îǧ¤µ¤ì¤¿¤¤¡£¤Þ¤¿¤³¤ì¤Þ¤Ç¤ÈƱÍͤˡ¢µö¤µ¤ì¤Ê¤¤Ã±°ì²½¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¬½ÐÎϤµ¤ì¤ë¤¬¡¢or ÄêµÁ¤È and ÄêµÁ¤âÀµ¤·¤½¤¦¤À¤È¤¤¤¦¤³¤È¤ò³Îǧ¤µ¤ì¤¿¤¤¡£

¼Â»ÜÎ㣵¤Ë¤ª¤±¤ë ! ¤Ï¥«¥Ã¥È¤Ç¤¢¤ë¡£¤³¤Î¥Ö¥í¥°¤Ç¤ÏAProlog¤ÎÀâÌÀ¤Ï¤³¤³¤Þ¤Ç¤È¤·¡¢¤³¤Î³¤­¤Ï¡ÖCommon Lisp¤È¿Í¹©ÃÎǽ¥×¥í¥°¥é¥ß¥ó¥°¡×ËÜʸ 32.7Àá ¤ÇÀâÌÀ¤¹¤ë¡£

¾åµ­¤ÇÆÀ¤é¤ì¤ë Lisp ´Ä¶­¤Ï ANSI Common Lisp ¤Ç¤¢¤ê¡¤¥·¥ó¥Ü¥ë¤ÇÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¡¥¾®Ê¸»ú¤ÇÆþÎϤ·¤Æ¤â¼«Æ°Åª¤ËÂçʸ»ú¤È¤µ¤ì¤Æ¡¤ÊÖ¤µ¤ì¤ëÃͤâÂçʸ»ú¤Î¥·¥ó¥Ü¥ë¤À¡¥

CG-USER(1): t
T
CG-USER(2): nil
NIL
CG-USER(3): 'foo
FOO
CG-USER(4): 

¤³¤³¤Ç¤Ï¡¤¥×¥í¥ó¥×¥È¤¬Âçʸ»ú¤Î CG-USER ¤Ç¤¢¤ë¤³¤È¡¤ÆþÎϤµ¤ì¤¿¥·¥ó¥Ü¥ë¤ÏÂçʸ»ú¤ÇÊÖ¤µ¤ì¤ë¤³¤È¤ò³Îǧ¤µ¤ì¤¿¤¤¡¥

Lisp ¤ÏFORTRAN¤ÈƱ¤¸¤°¤é¤¤¸Å¤¤Îò»Ë¤Î·×»»µ¡¸À¸ì¤Ç¤¢¤ê¡¤¤½¤ÎÅö»þ¤Ï·×»»µ¡¤Ë¾®Ê¸»ú¤òÆþÎϤ¹¤ë¼êÃʤ¬¤Ê¤«¤Ã¤¿¡¥¤½¤ì¤òº£¤â°ú¤­¤º¤Ã¤Æ¤¤¤ë¤ï¤±¤À¤¬¡¤º£Æü¤Ç¤Ï¤É¤Î·×»»µ¡¸À¸ì¤â¤¢¤¿¤ê¤Þ¤¨¤Î¤è¤¦¤ËÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤¹¤ë¡¥¤¹¤Ù¤Æ¤Î·×»»µ¡¤Îʸ»ú¥³¡¼¥É¤ËUNICODE¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿º£Æü¤Ç¤Ï¡¤¤³¤ì¤Ï¤¢¤Þ¤ê¤Ë¤â¸Å¤¹¤®¤ë¤È¸À¤ï¤¶¤ë¤òÆÀ¤Ê¤¤¡¥¼Â¤ÏÆþÎÏʸ»ú¤Ë´Ø¤·¤Æ¤Ï¡¤Lisp ¥ê¡¼¥À¤Ë¤ÏÂçʸ»ú¾®Ê¸»ú¤ò¤½¤Î¤Þ¤ÞÊݤĥ⡼¥É¤¬¤¢¤ë¡¥¤È¤³¤í¤¬¡¤Âçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤¹¤ë preserve ¥â¡¼¥É¤Ë¤ª¤¤¤Æ¤â¡¤Common Lisp ¤Ë´û¸¤Î´Ø¿ô¤ä¥Þ¥¯¥í¤Î¤è¤¦¤Ê¥·¥ó¥Ü¥ë¤ÏACL¤Îalisp (with IDE) ¤Ç¤Ï¤ä¤Ã¤Ñ¤êÂçʸ»ú¤Î¤Þ¤Þ¤Ê¤Î¤À¡¥¤À¤«¤é¡¤¤»¤Ã¤«¤¯ preserve ¥â¡¼¥É¤ËÊѤ¨¤Æ¤â¡¤¥³¡¼¥É¤ò½ñ¤¯¤È¤­¤Ë¤Ï´û¸¤Î Common Lisp ´Ø¿ô¤ä¥Þ¥¯¥í¤òÂçʸ»ú¤Ç½ñ¤«¤¶¤ë¤ò¤¨¤º¡¤¤È¤Æ¤â»È¤¤¤Ë¤¯¤¤¡¥¤¢¤ê¤¬¤¿¤¤¤³¤È¤Ë¡¤Franz ¼Ò¤Ï´û¸¤Î Common Lisp ¤Î¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ë¤ò¾®Ê¸»ú¤ËÊѤ¨¤Æ preserve ¥â¡¼¥É¤Ë¤·¤¿½èÍý·Ï¤ò¾¦ÍÑÈǤǤϥХó¥É¥ë¤·¤Æ¤¤¤ë¡¥¤½¤ì¤¬ Modern Lisp ¤È¸Æ¤Ð¤ì¤ë¤â¤Î¤À¡¥

¾¦ÍÑÈǤò¹ØÆþ¤¹¤ì¤Ð¡¤ANSI Lisp (alisp)¡¤Modern Lisp (mlisp)¡¤¤½¤ì¤é¤Î non-international ÈÇ¡¤¤ª¤è¤Ó with IDE ÈǤȹç·×£¶¼ïÎà¤Î Lisp ½èÍý·Ï¤¬ÇÛÉÛ¤µ¤ì¤ë¡¥¾åµ­¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ Free Express ¤Ï ANSI Lisp with IDE ¤À¤¬¡¤¤³¤ì¤ò Modern Lisp with IDE ¤ËÊÑ´¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡¥°Ê²¼¤Ç¤Ï¤½¤ÎÊýË¡¤òÀâÌÀ¤¹¤ë¤¬¡¤Àè¤òµÞ¤®¤¿¤¤¤«¤¿¤Ï¡¤¤¢¤ë¤¤¤ÏLisp¤Ç¾®Ê¸»úÆþÎϤò²Äǽ¤Ë¤¹¤ë¤Ê¤ó¤Æ¤±¤·¤«¤é¤ó¤È¤¤¤¦Êý¤Ï¤³¤ì°Ê¹ß¤Îµ­½Ò¤ò¥¹¥ë¡¼¤·¤Æ¤âÌäÂê¤Ï¤Ê¤¤¡¥

¤Þ¤º¤Ï¼«Ê¬¤¬¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ Free Express ¥Õ¥©¥ë¥À¤ÎÃæ¿È¤ò¤ß¤Æ¡¤allegro-express.dxl ¤Î¸ºß¤ò³Îǧ¤µ¤ì¤¿¤¤¡¥¤³¤ì¤¬¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ Free Express ¤Î Lisp ¥¤¥á¡¼¥¸¤Ç¤¢¤ê¡¤¤³¤ì¤ò¤â¤È¤Ë modern lispÈÇ(with IDE) ¤òºîÀ®¤¹¤ë¡¥

ACL free Express ¤òµ¯Æ°¤·¤¿¾õÂ֤ǡʤ¹¤Ê¤ï¤Á¡¤allegro-express.dxl  ¤ÎÍøÍѾõÂ֤ǡˡ¤Windows ¤Ê¤é¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×ÆþÎϤ¹¤ë¡¥

CG-USER(1): (progn
  (build-lisp-image "sys:allegro.dxl" :case-mode :case-sensitive-lower)
  (when (probe-file "sys:allegro.exe") (delete-file "sys:allegro.exe"))
  (sys:copy-file "sys:allegro-express.exe" "sys:allegro.exe"))
done.
T

Linux(ubuntu) ¤Ê¤é¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×ÆþÎϤ¹¤ë¡¥

CG-USER(1): (progn
              (build-lisp-image "sys:allegro.dxl" :case-mode :case-sensitive-lower :restart-app-function nil)
              (when (probe-file "sys:allegro") (delete-file "sys:allegro"))
              (sys:copy-file "sys:allegro-express" "sys:allegro"))
done.
T

¤·¤Ð¤é¤¯¤·¤Æ¡¤¤³¤Î¤è¤¦¤Ë done. ¤Ç½ªÎ»¤·¤¿¤é¡¤¤¢¤é¤¿¤á¤Æ¡¤Free Express ¥Õ¥©¥ë¥À¤ÎÃæ¿È¤ò¸«¤Æ¤ß¤è¤¦¡¥¿·¤·¤¯¡¤allego.exe¡Ê¤Þ¤¿¤Ïallegro¡Ë ¤È allegro.dxl ¤¬¤¢¤ë¤Ï¤º¤À¡¥¤½¤·¤¿¤é¡¤Express ¤ò½ªÎ»¤·¤Æº£ÅÙ¤Ï allegro.exe¡Ê¤Þ¤¿¤Ïallegro¡Ë  ¤òµ¯Æ°¤¹¤ë¡¥¥¹¥¿¡¼¥È¥á¥Ë¥å¡¼¤Ë¤Ï¸½¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¤Ä¾ÀÜ¥Õ¥©¥ë¥À¤ò³«¤¤¤Æ¼Â¹Ô¤¹¤ë¡¥¤³¤ó¤ÊÉ÷¤Ë¤Ê¤ì¤ÐÀ®¸ù¤À¡¥

cg-user(1): t
t
cg-user(2): nil
nil
cg-user(3): 'foo
foo
cl-user(4): most-positive-fixnum
536870911
cg-user(5): (cons 'a '(b c))
(a b c)

¤³¤³¤Ç¤Ï¡¤¥×¥í¥ó¥×¥È¤¬¾®Ê¸»ú¤ËÊѤï¤Ã¤¿¤³¤È¡¤ÆþÎϤ·¤¿¥·¥ó¥Ü¥ë¤¬¾®Ê¸»ú¤Î¤Þ¤Þ¤ËÊݤ¿¤ì¤Æ¤¤¤Æ¡¤ÁȤ߹þ¤ß¤Î¥·¥ó¥Ü¥ë¤ÎÃͤ¬ÆÀ¤é¤ì¤ë¤³¤È¡¥¾®Ê¸»ú¤Ç´Ø¿ô¤â¼Â¹Ô¤Ç¤­¤ë¤³¤È¤ò³Îǧ¤µ¤ì¤¿¤¤¡¥

¥æ¡¼¥¶¤ÎÃæ¤Ë¤Ï IDE ¤ò·ù¤Ã¤Æ¡¤alisp ¤ä mlisp ¤ò¹¥¤ß¤Î¥¨¥Ç¥£¥¿¤ÈÏ¢·È¤·¤Æ»È¤¤¤¿¤¤¤È¤¤¤¦¿Í¤¬¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡¥¤½¤¦¤¤¤¦¿Í¤¿¤Á¤Î¤¿¤á¤Ë¡¤¤Ä¤¤¤Ç¤Ë¤½¤¦¤¤¤¦ IDE ¤Ê¤·¤Î mlisp ¤ä alisp ¤Îºî¤êÊý¤âÀâÌÀ¤·¤è¤¦¡¥

Free Express ¤òµ¯Æ°¸å¡¤¤½¤ÎÃæ¤Ç¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¡¤Âçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤¹¤ë¤¬ IDE ¤Î¤Ê¤¤ mlisp ¤òºîÀ®¤Ç¤­¤ë¡¥

CG-USER(1): (progn
  (build-lisp-image "sys:mlisp.dxl" :case-mode :case-sensitive-lower
                    :include-ide nil :restart-app-function nil
                    :restart-init-function nil)
  (when (probe-file "sys:mlisp.exe") (delete-file "sys:mlisp.exe"))
  (sys:copy-file "sys:allegro-express.exe" "sys:mlisp.exe"))
done.
T

ƱÍͤˡ¤Free Express ¤òµ¯Æ°¸å¡¤¤½¤ÎÃæ¤Ç¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¡¤µìÍè¤Î¤è¤¦¤ËÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¤· IDE ¤â¤Ê¤¤ alisp ¤òºîÀ®¤Ç¤­¤ë¡¥

CG-USER(1): (progn
  (build-lisp-image "sys:alisp.dxl" :case-mode :case-insensitive-upper
                    :include-ide nil :restart-app-function nil
                    :restart-init-function nil)
  (when (probe-file "sys:alisp.exe") (delete-file "sys:alisp.exe"))
  (sys:copy-file "sys:allegro-express.exe" "sys:alisp.exe"))
done.
T

¤¤¤º¤ì¤Ë¤·¤Æ¤â¡¤¤³¤Î¤Þ¤Þ¤Ç¤Ï¤¤¤Á¤¤¤Á¥Õ¥©¥ë¥À¤ò³«¤±¤Ê¤¤¤È Lisp ¤òµ¯Æ°¤Ç¤­¤Ê¤¤¤Î¤Ç¡¤¹¥¤ß¤Î½èÍý·Ï¤òµ¯Æ°¤·¤¿¤é¡¤¥¿¥¹¥¯¥Ð¡¼¤Ë¥Ô¥ó»ß¤á¤·¤Æ¤ª¤¯¤Î¤¬ÊØÍø¤Ç¤¢¤ë¡¥

¤µ¤¢¤³¤ì¤Ç¤ä¤Ã¤ÈAProlog¤ÎÀâÌÀ¤ËÆþ¤ì¤Þ¤¹¤Í¡£

¤³¤Î¥Ú¡¼¥¸¤Î¥È¥Ã¥×¥Ø