โบสถ์บูลีน
โบสถ์บูลเป็นฟังก์ชันที่ผลตอบแทนx
สำหรับความจริงและy
เท็จที่x
เป็นอาร์กิวเมนต์แรกฟังก์ชั่นและy
เป็นอาร์กิวเมนต์ที่สองให้กับฟังก์ชั่น ฟังก์ชั่นเพิ่มเติมสามารถประกอบได้จากฟังก์ชั่นเหล่านี้ซึ่งเป็นตัวแทนของการดำเนินงานand
not
or
xor
และimplies
ตรรกะ
ท้าทาย
สร้าง booleans ริสตจักรและand
not
or
xor
และimplies
ประตูโบสถ์ในภาษาที่คุณเลือก and
or
และxor
ควรใช้สองฟังก์ชั่น (แทนบูลีนของโบสถ์) และส่งคืนฟังก์ชัน (แทนบูลีนของโบสถ์อื่น) ในทำนองเดียวกันnot
ควรกลับฟังก์ชั่นที่ใช้และimplies
ประตูควรดำเนินการบูลีนหมายถึงตรรกะที่อาร์กิวเมนต์แรกimplies
ที่สอง
เกณฑ์การให้คะแนน
ความยาวรวมของรหัสทั้งหมดที่จำเป็นในการสร้างคริสตจักรtrue
และfalse
ในภาษาของคุณand
not
or
xor
และimplies
ประตูคริสตจักรและไม่รวมชื่อฟังก์ชั่น (ตัวอย่างเช่นfalse=lambda x,y:y
ใน Python จะเป็น 13 ไบต์) คุณสามารถใช้ชื่อเหล่านี้ในภายหลังในรหัสของคุณโดยนับ 1 ไบต์ไปยังผลรวมไบต์ของเกตนั้น
ตัวอย่างโค้ดหลอก:
ฟังก์ชั่นที่คุณสร้างควรจะสามารถเรียกได้ในภายหลังในรหัสของคุณเช่นนั้น
true(x, y) -> x
false(x, y) -> y
and(true, true)(x, y) -> x
and(true, false)(x, y) -> y
# ... etc
true([x, y])
, and([true, true])([x, y])
)?