¤@Ó Prolog µ{§Ç¥]§t¼ÆÓµu¥y¡A¨CÓµu¥y¤@¬O¨Æ¹ê¡A©Î¬O³W«h¡C·í¤@Ó Prolog µ{§Ç¦b¤@Ó Prolog ¸ÑÄÀµ{§Ç³Q¸ü¤J¡]©Î³Q¬d¾\¡^®É¡A¨Ï¥ÎªÌ¥i¥H´£¥æ¥Ø¼Ð©Î¬d¸ß¡AProlog ¸ÑÄÀµ{§Ç´N·|®Ú¾Ú¨Æ¹ê©M³W«hµ¹¥Xµ²ªG¡]µª®×¡^¡C
¤@Өƹꥲ¶·¥H¤@Ó¿×µü¡]¬Oì¤lªº¤@ºØ¡^¶}©l¡A¥H^¤å¥y¸¹µ²§ô¡C¿×µü¤§«á¥i¥H¦³¤@¹ï¬A¸¹¡Aùر¦³¤@Ó©Î¥H¤WªºÅܤ¸¡AÅܤ¸¥i¥H¬Oì¤l¡]¦b³o±¡ªp¤U¡A³o¨Çì¤l³Q·í¦¨±`¼Æ¡^¡B¼Æ¦r¡BÅܶq©Î¦Cªí¡AÅܤ¸¥H³r¸¹¤À¹j¡C
¦pªG§ÚÌ§â¨Æ¹ê¤¤ªºÅܤ¸µø¬°ª«¥ó¡A¨º»ò¨Æ¹ê¤¤ªº¿×µü´N¬O§Î®e³o¨Çª«¥óªºÄݩʡC
¦b¤@Ó Prolog µ{§Ç¤¤¡AYªG¦³¤@¨Æ¹ê¦s¦b¡A§Y¥Nªí¤@Ó»y¥y¬O¯uªº¡FYªG¨Æ¹ê¨S¦³¦s¦b¡A³o¥Nªí¤@Ó»y¥y¤£¬O¯uªº¡C¬Ý¬Ý¥H¤U¨Ò¤l¡J
sunny. father(john, peter). father(john, mary). mother(susan, peter). |
¥Ø¼Ð¡þ¬d¸ß¤Î¨äµ²ªG¡]¬õ¦â©Ò¥Ü¡^ |
?- sunny. /* ¦^À³¬O¡uyes¡v¬O¦]¬°¨Æ¹ê¡usunny.¡v¦s¦b */ yes |
?- rainy. /*
¦³¿ù»~ªºµ²ªG¬O¦]¬°¨S¦³¤@Ó¥s¡urainy¡vªº¿×µü¡C
*/ ¿ù»~µ²ªG¡C |
?- father(john, mary). yes |
?- mother(susan, mary). /* ³o¤£¯à³Q±ÀÂ_¥X¨Ó¡C */ no |
?- father(john, susan). /* ³o¤£¯à³Q±ÀÂ_¥X¨Ó¡C */ no |
¤@Ó³W«h¥i¥Hµø¬°¨Æ¹êªº¦ù©µ³¡¥÷¡A¥u¤£¹L¬O¥[¤F±ø¥ó¡Cn³oÓ³W«h¦¨¬°¯uªº¡A³W«h¤¤ªº±ø¥ó¥²¶·²Å¦X¡C³W«h¤À¬°¨â³¡¥÷¡J²Ä¤@³¡¥÷©M¨Æ¹ê®t¤£¦h¡]¤@Ó¦³Åܤ¸ªº¿×µü¡^¡F²Ä¤G³¡¥÷¥]§t¨ä¥Lµu¥y¡]¨Æ¹ê©Î³W«h¡A¥H³r¸¹¤À¹j¡^¡An³W«h¦¨¬°¯uªº¡A³o¨Çµu¥y¥²¶·¬O¯uªº¡C³o¨â³¡¥÷¥Ñ¡u:-¡v¤À¹j¡A§A¥i¥H§â¥¦·í§@¬O¤¤¤å¤¤ªº¡u¦pªG¡v¡C
¬Ý¬Ý¥H¤U¨Ò¤l¡J
father(jack, susan).
/*
¨Æ¹ê¤@ */ |
®³³W«h¤T§@¬°¨Ò¤l¡A¥¦ªº·N«ä¬O¦pªG¡ufather(X, Z)¡v©M¡uparent(Z, X)¡v³£¬O¯uªº¡A¨º»ò¡ugranfather(X, Y)¡v¬O¯uªº¡C¦b±ø¥ó¤¤ªº³r¸¹¥i¥H·í§@¬OÅÞ¿è¤Wªº¡uAND¡v¹Bºâ²Å¡C
§A¥i¥H¨£¨ì³W«h¤@¤Î³W«h¤G³£¬O¥H¡uparent(X, Y)¡v¶}©l¡C¤°»ò®ÉÔ¡uparent(X, Y)¡v¤~·|Åܦ¨¯uªº¡Hµª®×´N¬O³o¨âÓ³W«h·í¤¤¥ô¦ó¤@Ó¬O¯uªº¡C³o§Y¬O»¡¡A·í¡ufather(X, Y)¡v¬O¯uªº©Î¡umother(X, Y)¡v¬O¯uªº®É¡A¡uparent(X, Y)¡v´N¬O¯uªº¡C
¥Ñ³W«h¤T¦Ü³W«h¤©Ò¨£¡A¥u¥X²{¦b³W«h¡A¨S¦³¦b¨Æ¹ê¥X²{ªº¿×µü¡]¦b³o±¡ªp¤U¡A¬O parent¡^¤]¥i¥H¦¨¬°¨ä¥L³W«hªº±ø¥ó¡C
·í Prolog ¸ÑÄÀµ{§Ç°õ¦æ®É¡A§A¥i¯à¦bµe±¨£¨ì´£µü¡u?-¡v¡A³o´£¿ô¨Ï¥ÎªÌ¿é¤J¤@ӥؼЩΪ̬d¸ß¡C
¥Ø¼Ð¬O¤@Ó¥H¿×µü¶}©l¡]¥i¯àªþ¦³¤@¨ÇÅܤ¸¡^ªº»y¥y¡C¦b¤@Ó¦³®Äªº¥Ø¼Ð¤¤¡A¿×µü¥²¶·´¿¦b³Q¬d¾\ªºµ{§Ç·í¤¤¦Ü¤Ö¤@Өƹê©Î³W«h¥X²{¹L¡A¦ÓÅܤ¸ªº¼Æ¥Ø¥²¶·©M¦b³Q¬d¾\ªºµ{§Ç·í¤¤©Ò¨£ªº¤@¼Ë¡C¦¹¥~¡A©Ò¦³Åܤ¸³£¬O±`¼Æ¡C
´£¥æ¥Ø¼Ðªº¥Øªº¬O¥h¨D¥X¥Ø¼Ð¥Nªíªº»y¥y¬O§_¯uªº¡A¨ä§PÂ_¤èªk¸ò¾Úª¾ÃѼƾڮw¡]§Y³Q¬d¾\ªºµ{§Ç¤¤ªº¨Æ¹ê©M³W«h¡^¡C³o©MÃÒ©ú°²³]¬Û¦ü¢w¢w¥Ø¼Ð´N¬O°²³]¡A¨Æ¹ê´N¬O¤½²z¡A¦Ó³W«h´N¬O©w²z¡C
¬d¸ß¬O¤@Ó¥H¿×µü¶}©l¡Aªþ¦³¤@¨ÇÅܤ¸ªº»y¥y¡A¦Ó·í¤¤¦³¨ÇÅܤ¸¬OÅܶq¡C©M¥Ø¼Ð¤@¼Ë¡A¦³®Äªº¬d¸ßªº¿×µü¥²¶·´¿¦b³Q¬d¾\ªºµ{§Ç¤¤¦Ü¤Ö¤@Өƹê©Î³W«h¥X²{¹L¡A¦ÓÅܤ¸ªº¼Æ¥Ø¥²¶·©M¦b³Q¬d¾\ªºµ{§Ç·í¤¤©Ò¨£ªº¤@¼Ë¡C
´£¥æ¬d¸ßªº¥Øªº¬O¥h¨D¥X¾A·íªºÈ¥h¥N¤J¬d¸ß¤¤ªºÅܶq¡A¨Óº¡¨¬¸Ó¬d¸ß¡C³o©Mµo°Ý°ÝÃD¬Û¦ü¡A°ÝÃD¬O°Ý¡u¤°»òÈ¥i¥H¨Ï§Úªº»y¥yÅܦ¨¯uªº¡v¡C
¥H¤U¨Ò¤l®i¥Ü¥Ø¼Ð©M¬d¸ß¦p¦ó³Qµû¦ô¡A¨Ï¥Îªº¬Oµ{§Ç¤T¡Cµ²ªG¥H¬õ¦âªí¥Ü¡C
?- parent(susan, mary). yes |
³oӥؼÐnÃÒ©ú¡uSusan ¬O Mary ªº¤@Ó®aªø¡v¡C±q¨Æ¹ê¤Q¤G©M³W«h¤G±oª¾¡A³o¥Ø¼Ð¬O¯uªº¡C |
?- parent(ray, peter). no |
³oӥؼÐnÃÒ©ú¡uRay ¬O Peter ªº¤@Ó®aªø¡v¡C¦]¬°¨S¦³¨Æ¹ê©M³W«h¤ä´©¡A©Ò¥H¦¹¥Ø¼Ð³Q¤ÏÃÒ¡C |
?- yeye(X, susan). no |
³oÓ¬d¸ß°Ý½Ö¬O Susan ªº¡uyeye¡v¡C§Ṳ́£¯à±qµ{§Ç¤¤§ä¨ì¸Ñ¡A¦]¦¹ Prolog ¸ÑÄÀµ{§Ç¦^¶Ç no¡C |
?- mama(amy, X). X = peter ; X = mary ; no |
³oÓ¬d¸ß°Ý½ÖºÙ©I Amy ¬°¡umama¡v¡C±qµ{§Ç±oª¾ Peter ©M
Mary ³£¬O¸Ñ¡C¦]¦¹ Prolog ¸ÑÄÀµ{§Ç·|Åã¥Ü³o¨âÓµª®×¡C ¦]¬° Prolog ¸ÑÄÀµ{§Ç¤@¦¸¥u¯àÅã¥Ü¤@ӸѡA§ÚÌ¿é¤J¤@Ó¤À¸¹¡]¤£¦Pªº³n¥ó¥i¯àn¿é¤J¤£¦Pªº²Å¸¹¡^¥hn¨D¤U¤@ӸѡC¦pªG¦A¨S¦³¸Ñ¡AProlog ¸ÑÄÀµ{§Ç·|¦^¶Ç no¡C |
?- gunggung(X, Y). X = jack X = jack no |
³oÓ¬d¸ß°Ý¡J¡uX ¬O Y ªº¡ygunggung¡z¡CX ©M Y ¬O½Ö¡H¡v±qµ{§Ç±oª¾¡AX ¬O Jack¡A¦Ó Y ¥i¥H¬O Peter ©Î Mary¡C©Ò¥H Prolog ¸ÑÄÀµ{§Ç·|¦^¶Ç¨â²Õµ²ªG¡C |
¬Ý¬Ý¤U¶¥iª¾ Prolog ¸ÑÄÀµ{§Ç¦p¦ó³B²z¥Ø¼Ð©M¬d¸ß¡C
°£¤F¦Û¦æ©w¸qªº¿×µü¥~¡AProlog ¥ç¦³´£¨Ñ¤º¸m¿×µü¡C¥H¤U¬O¤@¨Ç±`¨£ªº¤º¸m¿×µü¡J
¯d·N¥H¤Wªº¤º¸m¿×µü¦³¨âÓÅܤ¸¡A¤@Ó¦b¥ª±¡A¥t¤@Ó¦b¥k±¡]©M¨ä¥Lªºµ{§Ç»y¨¥¬Û¦ü¡^¡C¤£¹L¡A¦Û¦æ©w¸qªº¿×µü©M³¡¥÷¤º¸m¿×µü¤@©wn¦bÅܤ¸¤§«e¥X²{¡C
¥ç½Ð¯d·N is ©M = ªº¤À§O¡C¸Õ¬Ý¬Ý¥H¤Uªº¥Ø¼Ð¡J
?- 4 = 4. yes |
«Ü©úÅã¡C |
?- 4 is 4. yes |
«Ü©úÅã¡C |
?- 4 = 1 + 3. no |
µª®×¬O no¡A¦]¬°¥ª±¡]4¡^©M¥k±¡]1 + 3¡^¤£¬O§¹¥þ¤@¼Ë¡C |
?- 4 is 1 + 3. yes |
¥ª±ªºÈ©M¥k±ªºÈ¬Ûµ¥¡C |