Prolog Language
ऑपरेटर्स
खोज…
पूर्वनिर्धारित ऑपरेटर
आईएसओ / आईईसी 13211-1 और 13211-2 के अनुसार पूर्वनिर्धारित ऑपरेटर:
प्राथमिकता | प्रकार | ऑपरेटर (रों) | उपयोग |
---|---|---|---|
1200 | XFX | :- --> | |
1200 | fx | :- ?- | निर्देश, क्वेरी |
1100 | xfy | ; | |
1050 | xfy | -> | |
1000 | xfy | ',' | |
900 | वित्तीय वर्ष | \+ | |
700 | XFX | = \\= | शब्द एकीकरण |
700 | XFX | == \\== @< @=< @> @>= | शब्द तुलना |
700 | XFX | =.. | |
700 | XFX | is =:= =\= < > =< >= | अंकगणित मूल्यांकन और तुलना |
600 | xfy | : | मॉड्यूल योग्यता |
500 | yfx | + - /\ \/ | |
400 | yfx | * / div mod // rem << >> | |
200 | XFX | ** | तैरने की शक्ति |
200 | xfy | ^ | परिवर्तनीय परिमाणीकरण, पूर्णांक शक्ति |
200 | वित्तीय वर्ष | + - \ | अंकगणित की पहचान, निषेध; बिटवाइज़ पूरक |
कई प्रणालियां कार्यान्वयन के विस्तार के रूप में आगे ऑपरेटरों को प्रदान करती हैं:
प्राथमिकता | प्रकार | ऑपरेटर (रों) | उपयोग |
---|---|---|---|
1150 | fx | dynamic multifile discontiguous initialization | मानक निर्देश |
1150 | fx | mode public volatile block meta_predicate | |
900 | वित्तीय वर्ष | spy nospy |
संचालक घोषणा
प्रोलॉग में, op/3
का उपयोग करके कस्टम ऑपरेटरों को परिभाषित किया जा सकता है:
op(+Precedence, +Type, :Operator)
संचालक को एक प्रकार से एक वरीयता के साथ एक ऑपरेटर के रूप में घोषित करता है। ऑपरेटर उन नामों की एक सूची भी हो सकती है, जिस स्थिति में सूची के सभी तत्व समान ऑपरेटर घोषित किए जाते हैं।
पूर्वता 0 और 1200 के बीच का पूर्णांक है, जहां 0 घोषणा को हटा देता है।
: प्रकार से एक है
xf
,yf
,xfx
,xfy
,yfx
,fy
याfx
जहांf
functor की स्थिति को दर्शाता है औरx
औरy
तर्कों के पदों से संकेत मिलता है।y
एक पद को दर्शाता है जिसमें पूर्ववर्ती कम या फ़नकार की पूर्ववर्तीता के बराबर होता है, जबकिx
एक कड़ाई से कम पूर्वता को दर्शाता है।- उपसर्ग:
fx
,fy
- इन्फ़िक्स:
xfx
(साहचर्य नहीं),xfy
(दाएं साहचर्य),yfx
(बाएं साहचर्य) -
yf
:xf
,yf
- उपसर्ग:
उदाहरण उपयोग:
:- op(900, xf, is_true).
X_0 is_true :-
X_0.
उदाहरण क्वेरी:
?- dif(X, a) is_true.
dif(X, a).
शब्द क्रम
मानक आदेश के माध्यम से दो शब्दों की तुलना की जा सकती है:
चर @ <नंबर @ <परमाणुओं @ <स्ट्रिंग्स @ <संरचनाओं @ <सूचियों
टिप्पणियाँ:
संरचनाएं पहले वर्णक्रम द्वारा वर्णानुक्रम की तुलना करती हैं, फिर प्रत्येक तर्क की तुलना में और अंत में।
पहले लंबाई, फिर प्रत्येक तत्व द्वारा तुलना की जाती है।
आदेश देने वाला | सफल अगर |
---|---|
एक्स @ <वाई | मानक क्रम में X, Y से कम है |
एक्स @> वाई | X मानक क्रम में Y से बड़ा है |
एक्स @ = <वाई | X मानक क्रम में Y से कम या बराबर है |
एक्स @> = वाई | X मानक क्रम में Y से अधिक या बराबर है |
उदाहरण के प्रश्न:
?- alpha @< beta.
true.
?- alpha(1) @< beta.
false.
?- alpha(X) @< alpha(1).
true.
?- alpha(X) @=< alpha(Y).
true.
?- alpha(X) @> alpha(Y).
false.
?- compound(z) @< compound(inner(a)).
true.
समता शब्द
समानता ऑपरेटर | सफल अगर |
---|---|
एक्स = वाई | X को Y के साथ एकीकृत किया जा सकता है |
एक्स \ _ वाई | X को Y के साथ एकीकृत नहीं किया जा सकता है |
एक्स == वाई | एक्स और वाई समान हैं (यानी वे बिना किसी परिवर्तनशील बाइंडिंग के साथ एकीकृत होते हैं) |
एक्स \ _ = वाई | X और Y एक समान नहीं हैं |
एक्स =: = वाई | X और Y अंकगणित के बराबर हैं |
एक्स = \ = वाई | X और Y अंकगणित के बराबर नहीं हैं |