दिलचस्प पोस्ट
क्यों नहीं: पहले और: छद्म तत्वों के बाद `img` तत्वों के साथ काम करते हैं? 7 वीं प्रविष्टि पर 6 से 1000+ तक SQL सर्वर 2012 कॉलम पहचान वृद्धि बढ़ रहा है एक WCF सेवा के लिए आराम / सोप अंतराल पायथन में किसी अन्य फ़ंक्शन पर तर्कों के साथ कार्य पास करना? स्कला: "सामान्य" फ़ंक्शन मापदंडों को परिभाषित करने के लिए कैसे? कुछ और मिलान करने के लिए regex अगर यह कुछ और से पहले नहीं है cqlsh कनेक्शन त्रुटि: 'रेफरी () खोजशब्द तर्क' क्या कोई वस्तु प्रारंभकर्ता का उपयोग करने का कोई लाभ है? पिकासो फाइल सिस्टम से छवि लोड करें नियंत्रक में पोस्ट विधि को देखने और वापस करने के लिए ऑब्जेक्ट की सूची कैसे भेजनी है I तारीख स्ट्रिंग्स या ऑब्जेक्ट्स की सॉर्ट करें NSArray बाश में बहु-आयामी सरणियां एनएटी (विनफॉर्म्स) में किसी रूप में नियंत्रण केंद्रों पर केंद्रित है? स्काला पहचानकर्ता "निहित" क्या है? SQL या TSQL ट्यूरिंग पूर्ण है?

प्रोलॉग में अलग-अलग सूचियां

मुझे वास्तव में एक कठिन समय हो रहा है कि मेरे कोड को मेरे अलग-अलग सूचियों को दिखाने के लिए कैसे और भी अजीब नंबर मिल सकता है मुझे यह भी निश्चित नहीं है कि मेरी समझ में क्या कमी है मैं स्पष्ट रूप से इस भाषा के लिए नया हूँ और इसे स्कूल के लिए उपयोग करना चाहिए। मेरा अनिवार्य और कार्यात्मक दिमाग मुझे यह नहीं बताएगा कि इस योग्य के साथ नरक क्या चल रहा है

अब, नहीं, मैं आपका होमवर्क करने के लिए नहीं कह रहा हूँ! मैं बस आपको यह समझने में मदद करता हूँ कि मेरी समझ में क्या कमी है? मैंने भी इसी तरह के जवाब देखे हैं लेकिन मैं उन्हें इस समारोह को लिखने के तरीके से परिवर्तित नहीं कर सकता।

कृपया, एक बार फिर, मुझे ऐसा करने के लिए बास न करें जैसा कि मैंने पहले से ही सामान्य रूप से किया है। कृपया मेरी मदद करो मेरी समझ में क्या कमी है। कृपया मुझे बताए बिना कृपया उत्तर और कोड स्निपेट न दें कृपया

यह रहा:

is_even(H) :- 0 is mod(H, 2). segregate(List, Even, Odd) :- segregator(List, Even, Odd). segregator([], [], []). segregator([H|T], E, O) :- is_even(H), % I feel here is where I am supposed to build the list, % but I have no clue how since Even or Odd has not been unified. segregator(T, E, O), write('Even is '), write(E), nl. segregator([H|T], E, O) :- % Same here as above. segregator(T, E, O), write('Odd is '), write(O), nl. 

वेब के समाधान से एकत्रित समाधान "प्रोलॉग में अलग-अलग सूचियां"

तार्किक रूप से शुद्ध कार्यान्वयन बहुत सीधा-आगे है, सीएलपीएफडी के लिए धन्यवाद:

 :- use_module(library(clpfd)). list_evens_odds([],[],[]). list_evens_odds([X|Xs],[X|Es],Os) :- X mod 2 #= 0, list_evens_odds(Xs,Es,Os). list_evens_odds([X|Xs],Es,[X|Os]) :- X mod 2 #= 1, list_evens_odds(Xs,Es,Os). 

कुछ नमूना प्रश्न हम सफल होने की उम्मीद करते हैं (उत्तर के एक सीमित क्रम के साथ):

 ?- Xs = [1,2,3,4,5,6,7], list_evens_odds(Xs,Es,Os). Xs = [1,2,3,4,5,6,7], Es = [ 2, 4, 6 ], Os = [1, 3, 5, 7] ; false. ?- list_evens_odds(Ls,[2,4],[1,3]). Ls = [2,4,1,3] ? ; Ls = [2,1,4,3] ? ; Ls = [2,1,3,4] ? ; Ls = [1,2,4,3] ? ; Ls = [1,2,3,4] ? ; Ls = [1,3,2,4] ? ; no 

पूछे जाने वाले प्रश्नों के बारे में क्या असफल होने की उम्मीद है ?

 ?- list_evens_odds(Ls,[2,4,5],[1,3]). no ?- list_evens_odds(Ls,[2,4],[1,3,6]). no ?- list_evens_odds([_,_,_],[2,4],[1,3]). no 

अंत में, सबसे सामान्य क्वेरी :

 ?- assert(clpfd:full_answer). yes ?- list_evens_odds(Ls,Es,Os). Ls = [], Es = [], Os = [] ? ; Ls = [_A], Es = [_A], Os = [], _A mod 2#=0, _A in inf..sup ? ... 

2015-05-06 को संपादित करें

तार्किक-पवित्रता के साथ यह करने का एक और तरीका है!

मेटा- tpartition/4 प्रयोग करें zeven_t/2 या zodd_t/2 के साथ

 bool01_t(1,true). bool01_t(0,false). zeven_t(Z,Truth) :- Z mod 2 #= 0 #<==> B, bool01_t(B,Truth). %zodd_t(Z,Truth) :- Z mod 2 #= 1 #<==> B, bool01_t(B,Truth). zodd_t(Z,Truth) :- Z mod 2 #= B, bool01_t(B,Truth). % tweaked 

zeven_t/2 एक पूर्णांक, zodd_t/2 विषमता की समानता को zodd_t/2

जगह में सब कुछ के साथ, चलो कुछ प्रश्न चलाते हैं!

 ? - विभाजन (zeven_t, [1,2,3,4,5,6,7], एएस , ओएस )
 एएस = [2,4,6], ओस = [1,3,5,7]
 ? - tpartition (zodd_t, [1,2,3,4,5,6,7], ओएस , एएस )  % तर्क आदेश अलग है
 एएस = [2,4,6], ओस = [1,3,5,7]

दोनों निर्णायक रूप से सफल रहे list_evens_odds/3 का उपयोग करते हुए समकक्ष क्वेरी नहीं है