आप Y
पर इस तरह से 'आह्वान' कर सकते हैं विकल्प बाइंडिंग:
...registered(X, Y), (Y=ct101; Y=ct102; Y=ct103).
नोट कोष्ठक सही निष्पादन नियंत्रण प्रवाह बनाए रखने के लिए आवश्यक हैं। ;
/2 यह सामान्य or
ऑपरेटर है। अपने सीमित उपयोग के लिए आप कर सकते थे और साथ ही विकल्प अधिक मुहावरेदार
...registered(X, Y), member(Y, [ct101,ct102,ct103]).
कि बैक ट्रैकिंग पर करने के लिए Y बांधता सूची में से प्रत्येक सदस्य।
संपादित करें मुझे आपकी आखिरी आवश्यकता में देरी हुई। यदि आप चाहते हैं कि वाई मैच सभी 3 मूल्यों या है अनुचित, बजाय
...registered(X, ct101), registered(X, ct102), registered(X, ct103).
या अधिक कॉम्पैक्ट
...findall(Y, registered(X, Y), L), sort(L, [ct101,ct102,ct103]).
findall/3 का निर्माण सूची बहुत उसी क्रम कि पंजीकृत में उपयोग/2 सफल फिर मैं मिलान सुनिश्चित करने के लिए सॉर्ट का उपयोग करता हूं।
...setof(Y, registered(X, Y), [ct101,ct102,ct103]).
/3 setof भी परिणाम सूची
धन्यवाद, यह एक टन मदद की। मुझे यकीन नहीं था कि इसके बारे में कैसे जाना है, लेकिन मैं बाइंडिंग और बैकट्रैकिंग पर पढ़ने जा रहा हूं। की सराहना की! – Eogcloud