Mathematica, 84 ไบต์
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")/#/.x->1/.y->1/.z->1&
คำอธิบาย
เพิ่มเติม "คณิตศาสตร์" กับสตริง! ในคำตอบที่เชื่อมโยงสิ่งนี้จะขึ้นอยู่กับความจริงที่ว่าคุณสามารถ "คูณ" สตริงใน Mathematica ซึ่งจะทำให้ไม่ได้รับการประเมิน (คล้ายกับการคูณตัวแปรที่ไม่ได้กำหนดสองตัวx*y
) แต่ Mathematica จะใช้การทำให้ง่ายขึ้นพื้นฐานเช่นการยกเลิกปัจจัยต่างๆ
ดังนั้นเราจึงเริ่มต้นด้วยการจัดเก็บสามคู่เป็นสินค้าในx
, y
, z
ตามลำดับและคูณพวกเขาทั้งหมดเข้าด้วยกัน:
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")
สิ่งนี้ประเมินว่า
"freedom" "ignorance" "peace" "slavery" "strength" "war"
(Mathematica จะเรียงลำดับปัจจัยโดยอัตโนมัติ แต่เราไม่สนใจคำสั่งซื้อ)
เราหารสิ่งนี้โดยอินพุตเพื่อลบคำที่เราไม่ต้องการด้วย.../#
เนื่องจาก Mathematica จะยกเลิกปัจจัยต่างๆ เช่นถ้า"peace"
เราป้อนข้อมูลลงเอยด้วย
"freedom" "ignorance" "slavery" "strength" "war"
สุดท้ายเราได้รับการกำจัดคู่เราไม่ได้สนใจในโดยการแทนแต่ละx
, y
และกับz
1
อีกครั้ง Mathematica ของความบันเทิงความเรียบง่ายในการที่อยู่เสมอ1*a
a
ส่วนนี้ทำด้วย:
/.x->1/.y->1/.z->1
สิ่งที่ดีคือ Mathematica รู้ดีว่าการคูณคือOrderless
สิ่งนี้จะพบสองปัจจัยโดยไม่คำนึงถึงว่าพวกมันอยู่ติดกับผลิตภัณฑ์หรือไม่ เฉพาะคำที่ตรงข้ามกับอินพุตเท่านั้นที่จะไม่ถูกจับคู่ในผลิตภัณฑ์ดังนั้นจะไม่ถูกลบออกและยังคงเป็นเอาท์พุทเพียงอย่างเดียว