2011-04-06 8 views
26

मैं सात सप्ताह में सात भाषाएं पुस्तक का पालन कर रहा हूं।सात सप्ताह में सात भाषाओं के बाद Prolog अस्तित्व_error

मैंने कमांड port install gprolog-devel का उपयोग करके मेरी मैक मशीन में gprolog स्थापित किया है और पहले प्रोलॉग कोड चलाया है।

likes(wallace, cheese). 
likes(grommit, cheese). 
likes(wendolene, sheep). 

friend(X, Y) :- \+(X = Y), likes(X, Z), likes(Y, Z). 

अगर मैं prolog interpretor पर likes(wallace, cheese). टाइप करें, मैं त्रुटि

न आया हुआ अपवाद मिल गया है: त्रुटि (existence_error (प्रक्रिया,/2 पसंद करती है), top_level/0)।

प्रोलॉग 1.3.1 मेरे मैक में स्थापित नहीं किया जा सका, मैं प्रोलॉग 1.4.0 का उपयोग कर रहा हूं।

उत्तर

38

इंटरैक्टिव gprolog दुभाषिया भविष्यवाणियों की एक लोड सूची के खिलाफ प्रश्न चलाता है, यही कारण है कि आपको existence_error अपवाद मिलता है। आपको अपने भविष्यवाणियों को लोड करना होगा, या तो आईडीई का उपयोग करके जो आपके लिए लोडिंग करता है या मैन्युअल रूप से कर रहा है।

| ?- [user]. 
compiling user for byte code... 
likes(wallace, cheese). 
likes(grommit, cheese). 
likes(wendolene, sheep). 

friend(X, Y) :- \+(X = Y), likes(X, Z), likes(Y, Z). 

* Press Ctrl-D to end input. * 
user compiled, 6 lines read - 909 bytes written, 15538 ms 

yes 
| ?- friend(wallace,grommit). 

yes 
| ?- friend(wallace,wendolene). 

no 

gprolog मैनुअल अध्याय Consulting a Prolog program

+2

क्रैकिंग उदाहरण Grommit में इस बारे में लिखते हैं:

यहाँ एक दृष्टिकोण है! – monojohnny

+2

आप अपनी भविष्यवाणियों को एक फ़ाइल में भी डाल सकते हैं और इसे 'gprolog --consult-file "my_predicates.pl"' लोड कर सकते हैं, फिर gprolog फ़ाइल को पार करता है और बाद में इंटरैक्टिव मोड में प्रवेश करता है – dualed