में वैश्विक चर बनाने के लिए एक सूची है कि मैं इस प्रकार बनाने:मैं कैसे prolog
tab([(top,left),(top,middle),(top,right),(center,left),(center,middle),
(center,right),(bottom,left),(bottom,middle),(bottom,right)]).
मैं एक वैश्विक चर AllPosition एक टैब है कि बनाना चाहते हैं। तो मैंने निम्नलिखित किया:
tab(AllPos).
क्या यह सही है?
फिर मुझे समस्या का पालन करना होगा: मेरे पास एक ऐसा फ़ंक्शन है जो टैब में से एक जोड़ी प्राप्त करता है। मैं हटाना चाहता हूँ। तो मैं इस किया था:
place(Line, Column, Tab) :-
AllPos \== [_,_] /*while AllPos isn't empty - not sur if this is done this way*/ -> (member((Line,Column), AllPos) -> (erase(AllPos, (Line,Column), AllPos)).
जहां erase(List, Element, NewList)
सूची से तत्व तत्व मिटा देता है और एक नई सूची NewList सूची के बराबर लेकिन तत्व के बिना पैदा करता है। दोनों कार्य member
और erase
काम कर रहे हैं।
बात यह है कि ... जैसा कि आपने देखा होगा कि मैं हर जगह AllPos
का उपयोग करता हूं। ऐसा इसलिए है क्योंकि मैं चाहता हूं, मैं इसे संशोधित करना चाहता हूं ताकि मैं बाद में इसका उपयोग कर सकूं (इसके कुछ तत्व हटा दिए जाने के बाद), किसी अन्य फ़ंक्शन में। क्या मेरा तर्क सही है? क्या मैं किसी अन्य फ़ंक्शन में संशोधित AllPos का उपयोग करने में सक्षम हूं? धन्यवाद
कृपया यह भी देखें कि कैसे [** वैश्विक चर से बचें **] (http://stackoverflow.com/questions/19005042/how-to-avoid-using-assert-and-retractall-in प्रोलॉग में -प्रोजेन-टू-कार्यान्वयन-वैश्विक-या-राज्य)। – mat