2011-11-28 9 views
5

निम्नलिखित कोड एक Prolog कोड है जो सभी पूर्णांकों 0. हर बार जब मैं दुभाषिया में ; डाल से अधिक देता है, यह अगले संख्या देता है:प्रोलॉग में 1 से 100 तक संख्याएं कैसे मुद्रित करें?

is_integer(0). 
is_integer(X) :- is_integer(Y),X is Y+1. 

वहाँ एक रास्ता है, जहां यह 0 और बीच के अंक देता है केवल 100 जब यह 100 तक पहुंच जाता है तो इसे रोकना चाहिए।

उत्तर

2

क्या एक अच्छा प्रश्नोत्तरी एक ही उदाहरण है, लेकिन केवल 3 करने के लिए जा। यह प्रोजेक्ट परिभाषित करता है कि न्यूनतम उपकरणों के साथ रिकर्सन को नियंत्रित करना कितना मुश्किल हो सकता है। हम पूर्वनिर्धारित सीमा से कम पर हमारे समाधान के लिए प्रतिबद्ध होना चाहिए, otherless अनबाउंड खोज सीमित:

is_integer(0). 
is_integer(X) :- 
    is_integer(Y), 
    (Y >= 100, ! ; X is Y + 1). 

यहाँ का पता लगाने उत्पादन रेंज सीमित है 3 (अर्थात ... Y >= 3, ! ; ...)

?- is_integer(X). 
X = 0 ; 
X = 1 ; 
X = 2 ; 
X = 3 ; 
true. 
को
5

बी, सीओओ, एसआईसीस्टस (पुस्तकालय), एसडब्ल्यूआई, वाईएपी, एक्सएसबी (पुस्तकालय) में उस उद्देश्य के लिए अंतर्निहित अनुमानित between/3 है।

?- between(0,100,X). 
X = 0 ; 
X = 1 ; 
... 
X = 100. 

आप Prolog जानने के लिए शुरू करते हैं, बेहतर s(X) संख्या पहले जो ज्यादा समझते हैं और के बारे में कारण अधिक आसान होता है उपयोग करने के लिए प्रयास करें।

?- nat_nat_sum(N,_,s(s(s(0)))). 

परिभाषा के साथ:

nat_nat_sum(0,I,I). 
nat_nat_sum(s(I),J,s(K)) :- 
    nat_nat_sum(I,J,K). 
संबंधित मुद्दे