2012-10-16 26 views
10

मैं सिर्फ X के मान को मुद्रित करने का तरीका नहीं समझ सकता। यहाँ है कि मैं क्या उच्चस्तरीय में करने की कोशिश की है:prolog - एक चर के मान को प्रिंट करें

59 ?- read(X). 
|: 2. 
X = 2. 

60 ?- write(X). 
_G253 
true. 

_G253 क्या है? मैं इंडेक्स नंबर नहीं चाहता, मैं चाहता हूं कि एक्स एक्स बाध्य है। X के मूल्य को मुद्रित करने के लिए मुझे क्या करना चाहिए?

+0

संभव डुप्लिकेट (http://stackoverflow.com/questions/9358623/variable-names-in-swi-prolog) – false

उत्तर

13

जब आप इंटरैक्टिव प्रॉम्प्ट पर write(X). टाइप करते हैं, और कुछ और नहीं, एक्स विशेष रूप से कुछ भी बाध्य नहीं है। यदि आप उपयोगकर्ता से एक्स को पढ़ना चाहते हैं और फिर इसे लिखना चाहते हैं, तो प्रॉम्प्ट पर read(X), write(X). टाइप करने का प्रयास करें।

?- read(X), write(X). 
|: 28. 
28 
X = 28. 

एसडब्ल्यूआई प्रोलॉग शीर्ष-स्तरीय बाइंडिंग का इतिहास रखता है; मैनुअल में जाने के लिए help. टाइप करें, फिर bindings पर खोजें या मैनुअल के सेक्शन 2.8 पर जाएं, 'टॉप-स्तरीय बाइंडिंग का पुन: उपयोग करें'। वहां, आप सीख सकते हैं कि एक सफल शीर्ष-स्तरीय लक्ष्य में बंधे किसी भी चर के नवीनतम मूल्य को बनाए रखा गया है, और इसे एक डॉलर के चिह्न के साथ उपसर्ग के साथ चर के नाम का उपयोग करने के लिए संदर्भित किया जा सकता है। तो निम्नलिखित की तरह बातचीत संभव हो रहे हैं:

?- read(X). 
|: 42. 
X = 42. 

?- write($X). 
42 
true. 

लेकिन एक उच्च-स्तरीय लक्ष्य है कि बस का उपयोग करने के चर नाम एक्स एक ताजा चर का उपयोग कर के रूप में व्याख्या की जाएगी होता है; अन्यथा प्रोलॉग के सामान्य अर्थशास्त्र का उल्लंघन करना होगा।

0

प्रोलॉग - इनपुट के रूप में लें और एक चर के मान मुद्रित करें।

go:- write('Enter a name'),nl, 
    read(Name),nl, 
    print(Name). 
print(Name):- write(Name),write(', Hello !!!'). 
की [SWI Prolog में चर नाम]

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

  • कोई संबंधित समस्या नहीं^_^