Counting definite clause grammar recursions in Prolog -


मेरे पास निम्नलिखित प्रोलॉग निश्चित खंड व्याकरण हैं:

  s -> [a ], एस, [ख]। रों - & gt; []।  

इसका परिणाम [a, a, b, b] जैसे [a, b, a, b] शब्दों के विपरीत स्वीकार किए जाते हैं। संक्षेप में इसे डाल करने के लिए व्याकरण स्पष्ट रूप से एक ^ एन बी ^ एन है अब मैं उपयोगकर्ता को एन वापस करना चाहता हूं। मैं कैसे n?

  s (X) - & gt; [ए] की गणना कर सकता हूं, एस (वाई), [बी], {एक्स Y + 1} है। रों (0) - & gt; []।  

एक को डीसीजी गैर टर्मिनलों को पैरामीटर देने की आवश्यकता है। कृपया ध्यान रखें कि समानताएं अनिवार्य प्रोग्रामिंग भाषाओं की तरह काम नहीं करती हैं, इसलिए एक्स Y + 1 का उपयोग किया जाता था।

कुछ नमूना आउटपुट:

  s (X, [ ए, बी, बी, ख], [])। असत्य। रों (एक्स, [एक, एक, ए, बी, बी, ख], [])। एक्स = 3; असत्य।  

Comments