Hayır, nor
herhangi 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 " )
not
ilk 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,
or
geçerli olmayan anlamsal anlamlarla karıştırılmamıştır.
Ama donanımda çok yaygın ...
nor
diğ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 nor
olduğ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 NOR
montajcı 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 while
veya ile birlikte ifade until
etmenize 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 c
iç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, nor
sö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.
or
ve!
ve çift negatifler nadiren kullanılıyor - çoğu insan onları özellikle okunması zor buluyor.