आदेश सिर्फ +
ऑपरेटर के रूप में (कई अन्य लोगों के साथ) अपने कार्य func
इनलाइन बैठाना के लिए, आपको func
के लिए एक पूर्वता क्रम निर्धारित करने होंगे और यह तर्क है। आप इसे op/3
के साथ एसडब्ल्यूआई-पोलॉग में प्राप्त कर सकते हैं।
उदाहरण के लिए, निर्देश (जहां func/2
प्रयोग किया जाता है कोड पूर्ववर्ती):
:- op(500,yfx,func).
func/2
लागू करने के लिए, आप या तो अपनी भाषा (यानी के लिए एक मेटा-दुभाषिया लिख सकते हैं, तो आप एक PROLOG प्रोग्राम है जो पार्स बारे में func
सहित अवधि भाव और उन्हें व्याख्या के रूप में आप चाहें तो), या यदि func/2
सख्ती से गणित है, तो आप arithmetic_function/1 भी इस प्रकार का उपयोग कर सकते एक निर्देश के रूप में:
:- arithmetic_function(func/2).
func/2
के लिए निम्नलिखित परिभाषा के साथ इस परीक्षण:
func(X, Y, Z) :-
Z is X + Y.
, देता है अपने उदाहरण के साथ:
?- A is (2 func 3) func (4 func (2+1)).
A = 12.
अब एसडब्ल्यूआई प्रोलॉग के मैनुअल में यह कहता है कि यह निर्देश बहिष्कृत है, एक अद्यतन समाधान कैसे होगा? टीएक्स –
यह सुनिश्चित करें कि इसे क्यों हटा दिया गया था, [जनवरी विएलेमेकर] (https://github.com/JanWielemaker) से पूछने के लिए सबसे अच्छा है अगर आपको वास्तव में जानना आवश्यक है। मेरी समझ यह है कि यह अभी भी काम करता है, भले ही इसे बहिष्कृत किया गया हो ... क्या मैं गलत हूं? – sharky