ไม่ไม่มี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
และ!
และเพราะดับเบิลเนกาทีฟจะไม่ค่อยได้ใช้ - คนส่วนใหญ่พบพวกเขาอย่างหนักโดยเฉพาะอย่างยิ่งในการอ่าน