Hayır, norherhangi bir üst seviye mainstream programlama dilinde operatör yoktur .
Neden ?
Temelde okumak zor olduğu için:
- birkaç operatörün zihinsel kombinasyonunu gerektirir (" değil " veya daha edebi bir tarzda: " daha olumsuz ", " her biri doğru " )
notilk işlenen üzerinde bir ima eder , ancak okuyucu bunu daha sonra anlar
- “ ne x ne de y ”, “ ne x ne de y ” gibi ilk işlenende açık bir olumsuzlama kullanan insan dillerinden farklıdır . Yani bir okuyucu yanıltabilecek
(x nor y)ile (x and not y)yerine((not x) and (not y))
- Bazı okuyucular,
orgeçerli olmayan anlamsal anlamlarla karıştırılmamıştır.
Ama donanımda çok yaygın ...
nordiğer tüm mantıksal kapıları yapmak için kullanılabilecek temel bir donanım kapısıdır . Böylece, diğer tüm mantıksal operatörlerin kombinasyonlar norolduğu ve en basit temel mantıksal operatör olduğu söylenebilir .
Ancak, donanım için doğru olan, mutlaka insanlar için doğru değildir. Ve donanım seviyesindeki popülaritesine rağmen, bazı ana CPU'lar NORmontajcı talimat setlerinde bile bir teklif sunmuyor (örneğin x86 ).
Alternatifler
Okunabilirlik önemlidir. Ve bazen başka yollarla da geliştirilebilir.
Mevcut operatörlerin kullanımı
Örneğin:
if x not in [1,2] // use of 'in' or 'not in' operator instead of x!=1 and x!=2
Koşulların sıralanması
if x==1 or x==2
action A
else
action B
onun yerine
if x!=1 and x!=2
action B
else
action A
Kadar döngü kullanımı
Bazı diller ayrıca, koşulları daha "olumlu" bir şekilde seçmenize izin veren whileveya ile birlikte ifade untiletmenize olanak sağlayan döngü talimatları da sunar . Bu talimatlar örneğin aşağıdaki gibidir until c do ...içinde yakut , do until c ...içinde fi veya repeat ... until ciçinde Pascal ve onun soyundan.
Örneğin:
Until (x==1 or x==2) do
...
eşittir:
While (x!=1 and x!=2)
...
Bir işlev yap
Şimdi, norsözdizimini hala tercih ediyorsanız , bir işlev tanımlayabilirsiniz, ancak yalnızca bir kısayol olmasını beklemiyorsanız:
If ( nor(x,y) ) // attention, x and y will always be evaluated
...
İşlevin operatör üzerinden okunabilirlik avantajı vardır, çünkü okuyucu hemen olumsuzlamanın tüm argümanlara uygulandığını anlar. Bazı dillerde, değişken sayıda argüman içeren bir fonksiyon tanımlayabilirsiniz.
orve!ve çift negatifler nadiren kullanılıyor - çoğu insan onları özellikle okunması zor buluyor.