2010-03-02 16 views

उत्तर

5

इसका मतलब है कि आपका प्रोग्राम नियमों के समूह के रूप में लागू किया गया है, और डेटा को नियमों के समूह के रूप में भी लागू किया जाता है - ऐसे नियमों के बीच कोई भेद नहीं है जो कुछ परिचालनों (एक कार्यक्रम) का कारण बनता है, और एक नियम एक डेटा मूल्य वापस देता है।

4

यह डेटा होने के संदर्भ में संदर्भित करता है, लेकिन कार्यक्रम को भी शब्दों में वर्णित किया जा रहा है।

1
?- A=write(B), C=(B is 1+2), Prog = (C, A). 
A = write(B), 
C = (B is 1+2), 
Prog = (B is 1+2, write(B)). 

?- $Prog. 
3 
true. 
6

प्रोलॉग स्रोत केवल नियमों की एक सूची है। कुछ नियम केवल "डेटा" हैं - वे आगे मूल्यांकन के बिना true हैं।

person(james). 
father(james, thomas). 

"जेम्स एक व्यक्ति है।" "जेम्स थॉमस का पिता है।"

ये नियम डेटा हैं।

मैं इस डेटा के खिलाफ एक प्रश्न चला सकता हूं। मैं पूछ सकते हैं:

?- person(X). 

जवाब होगा:

X = james. 

या:

?- father(X, thomas). 

जवाब वही होगा।

अन्य नियमों को और मूल्यांकन की आवश्यकता है।

grandfather(X, Z) :- father(X, Y), father(Y, Z). 

यह एक साधारण "प्रोग्राम" है।

यदि हमारे पास सही डेटा है तो हमारे दादा कार्यक्रम का मूल्यांकन सही होगा। उदाहरण के लिए:

father(james, william). 
father(james, tyler). 
father(james, thomas). 
father(jeff, james). 

अगर मैं निम्नलिखित प्रोग्राम को निष्पादित:

?- grandfather(jeff, X). 

मैं:

X = william 

मैं जारी रखने के लिए prolog पूछ सकते हैं और मैं X = tyler और X = thomas मिल जाएगा।

वाक्यविन्यास अधिक जटिल हो जाता है, लेकिन मूल बातें समान हैं। डेटा और कार्यक्रम सिर्फ तथ्यों का एक सेट है। प्रोलॉग की कला सही नियम बना रही है जो परिणामस्वरूप गणना को चलाती है।

+0

धन्यवाद। उत्कृष्ट जवाब –

4

बस मेरे पैडेंट की टोपी डालने के लिए- इसका नाम है: homoiconic। इसके बारे में बहुत कुछ है: मशीन कोड भी है, homoiconic।

संबंधित मुद्दे