मैं वर्तमान में प्रोलॉग पर एक बहुत ही कम प्रोजेक्ट पर काम कर रहा हूं, और बस एक सूची में बनाए गए "फ़िल्टर" को लागू करने की कोशिश कर रहा हूं। मेरे पास फ़िल्टर है जिसे आप फ़िल्टर तैयार कर सकते हैं, लेकिन मैं इसे लागू नहीं कर सकता। यह बेहतर होगा अगर मैं स्पष्ट करता हूं:प्रोलॉग: एक सूची फ़िल्टरिंग?
filter(A, B)
... कुछ शर्तों को पूरा होने पर 'सत्य' आउटपुट करता है।
filterList(A, [X, Y, Z])
... एक सूची है जो दूसरा तर्क है कि फिल्टर उत्पादन झूठी बनाने से सभी तत्व शामिल हैं आउटपुट। (इसलिए अगर फ़िल्टर (ए, एक्स) सच है, तो आउटपुट [वाई, जेड] है)।
मेरे पास "फ़िल्टर" फ़ंक्शन तैयार है, लेकिन अब मुझे दूसरे उदाहरण पर दिखाए गए एक सूची में इसे लागू करने की आवश्यकता है, जिसमें सभी तत्वों को छोड़कर फ़िल्टर पहली बार तर्क के साथ लागू होने पर सत्य लौटाता है।
तो, यदि फ़िल्टर एक साधारण ए == बी है, तो फ़ंक्शन ए [ए, बी, ए, सी, डी, ए] और आउटपुट [बी, सी, डी] प्राप्त करने वाला है, सभी को हटाकर स्पष्ट रूप से फ़िल्टर, जिसके लिए फ़िल्टर लागू होता है।
मुझे फ़ंक्शन की मूल संरचना में समस्या हो रही है, इसलिए अगर कोई इस तरह के फ़ंक्शन के लिए मूल रूपरेखा प्रदान कर सकता है तो यह बहुत मददगार होगा। मैंने जितनी ज्यादा हो सके अपनी स्थिति को सरल बना दिया है, इसलिए मैं जो कुछ भी कर सकता हूं उसे अपनी आवश्यकताओं के लिए प्रदान करने और संशोधित करने में सक्षम हो सकता हूं।
अग्रिम धन्यवाद!
पिटी नाइश अपने निष्कर्षों में आवेदन/लागू करने का प्रस्ताव करता है, लेकिन मुझे लगता है कि जाने का वर्तमान तरीका कॉल/एन का उपयोग करना है। आवेदन/3 बस कॉल/3 है। –
चर्चा के लिए देखें क्यों नाइश संदर्भ विवादित है: http://www.complang.tuwien.ac.at/ulrich/Prolog-inedit/naish.html –