खोज…


पूर्वनिर्धारित ऑपरेटर

आईएसओ / आईईसी 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 अंकगणित के बराबर नहीं हैं


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow