मैं प्रोलॉग के लिए बहुत नया हूं और मैं एक सरल रिकर्सिव उदाहरण करने की कोशिश कर रहा हूं। मेरा केबी है:
natural(0).
natural(n) :- natural(n - 1).
फिर मेरी पूछताछ है:
natural(1).
और जवाब झूठा है।
जो मैंने पढ़ा है, प्रोलॉग में संख्याएं "पुस्तक" जैसी स्थिरांक हैं और यह हो सकती है समस्या पैदा कर रहा है, लेकिन मुझे यकीन नहीं है कि इसे कैसे ठीक किया जाए।
कोई भी सहायताकाफी प्रशंसनीय होगी। धन्यवाद!
उत्तर:
जवाब के लिए 2 № 1आपको ऐसा करना चाहिए:
natural(0).
natural(N) :- M is N - 1, natural(M).
Prolog एक अनिवार्य भाषा नहीं है और प्राकृतिक एक समारोह नहीं है। यहां क्या होता है मैं एम -1 के साथ एम को एकीकृत कर रहा हूं और फिर देखो कि एम प्राकृतिक है या नहीं।
तो, अनिवार्य अनुवाद, is
असाइनमेंट के लिए है। यह भी ध्यान रखें कि चर अपरकेस के साथ शुरू होना चाहिए, लोअरकेस "स्थिरांक" के लिए है।