नहीं, norकिसी भी उच्च स्तरीय मुख्यधारा की प्रोग्रामिंग भाषा में कोई ऑपरेटर नहीं है ।
क्यों ?
मुख्य रूप से क्योंकि इसे पढ़ना मुश्किल है:
- इसके लिए कई ऑपरेटरों के मानसिक संयोजन की आवश्यकता होती है (" और नहीं ", या अधिक साहित्यिक शैली में: " आगे नकारात्मक ", " प्रत्येक असत्य " )
- इसका अर्थ
notपहले ऑपरेंड पर एक निहितार्थ है , लेकिन पाठक केवल इसे बाद में समझते हैं
- यह मानव भाषाओं से अलग है, जो पहले संचालन पर एक स्पष्ट नकार का उपयोग करती है, जैसे " न तो x और न ही y ", " न ही x और न ही y "। तो एक पाठक
(x nor y)के (x and not y)बजाय के साथ भ्रमित हो सकता है((not x) and (not y))
- कुछ पाठक स्पष्ट
orअर्थ के साथ भ्रमित होते हैं जो लागू नहीं होता है
लेकिन यह हार्डवेयर में इतना आम है ...
norएक प्राथमिक हार्डवेयर गेट है जिसका उपयोग अन्य सभी तार्किक द्वार बनाने के लिए किया जा सकता है। तो कोई यह तर्क दे सकता है कि अन्य सभी तार्किक ऑपरेटर संयोजन हैं और norसबसे सरल प्राथमिक तार्किक ऑपरेटर है।
हालांकि, हार्डवेयर के लिए जो सच है वह मनुष्यों के लिए जरूरी नहीं है। और यह हार्डवेयर स्तर पर लोकप्रियता के बावजूद, कुछ मुख्यधारा सीपीयू NORअपने कोडांतरक अनुदेश सेट (जैसे x86 ) में भी प्रदान नहीं करते हैं ।
वैकल्पिक
पठनीयता मायने रखती है। और कभी-कभी अन्य तरीकों से इसमें सुधार किया जा सकता है।
मौजूदा ऑपरेटरों का उपयोग
उदाहरण के लिए:
if x not in [1,2] // use of 'in' or 'not in' operator instead of x!=1 and x!=2
शर्तों का आदेश
if x==1 or x==2
action A
else
action B
के बजाय
if x!=1 and x!=2
action B
else
action A
लूप तक का उपयोग
कुछ भाषाएं लूप निर्देश भी प्रदान करती हैं जो आपको whileया तो until"सकारात्मक" तरीके से चुनने की अनुमति देती हैं। ये निर्देश उदाहरण के लिए कर रहे हैं until c do ...में गहरे लाल रंग का , do until c ...में vb , या repeat ... until cमें पास्कल और उसके वंश।
उदाहरण के लिए:
Until (x==1 or x==2) do
...
के बराबर है:
While (x!=1 and x!=2)
...
एक फंक्शन करें
अब यदि आप अभी भी norवाक्य रचना पसंद करते हैं, तो आप एक फ़ंक्शन को परिभाषित कर सकते हैं, लेकिन केवल तभी जब आप शॉर्टकट होने की उम्मीद न करें:
If ( nor(x,y) ) // attention, x and y will always be evaluated
...
ऑपरेटर पर फ़ंक्शन का एक पठनीयता लाभ है, क्योंकि पाठक तुरंत समझता है कि नकार सभी तर्कों पर लागू होता है। कुछ भाषाओं में आप एक फ़ंक्शन को चर की संख्या के साथ परिभाषित कर सकते हैं।
orऔर!, और क्योंकि डबल नकारात्मक शायद ही कभी उपयोग किए जाते हैं - ज्यादातर लोग उन्हें पढ़ने के लिए विशेष रूप से कठिन पाते हैं।