โบสถ์บูลีน
โบสถ์บูลเป็นฟังก์ชันที่ผลตอบแทน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]))?