Toán học, 84 byte
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")/#/.x->1/.y->1/.z->1&
Giải trình
Thêm "số học" với chuỗi! Như trong câu trả lời được liên kết, điều này dựa trên thực tế là bạn có thể "nhân" các chuỗi trong Mathicala, điều này sẽ khiến chúng không được đánh giá (tương tự như nhân hai biến không được gán x*y
), nhưng Mathicala sẽ áp dụng các đơn giản hóa cơ bản, như hủy bỏ các yếu tố trong một phép chia.
Vì vậy, chúng ta bắt đầu bằng cách lưu trữ ba cặp như các sản phẩm trong x
, y
, z
, tương ứng và nhân chúng lại với nhau:
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")
Điều này đánh giá
"freedom" "ignorance" "peace" "slavery" "strength" "war"
(Mathematica tự động sắp xếp các yếu tố, nhưng chúng tôi không quan tâm đến thứ tự.)
Chúng tôi chia điều này cho đầu vào để loại bỏ từ mà chúng tôi không muốn .../#
, vì Mathematica hủy bỏ các yếu tố. Ví dụ: nếu đầu vào là "peace"
cuối cùng chúng ta sẽ:
"freedom" "ignorance" "slavery" "strength" "war"
Cuối cùng, chúng ta thoát khỏi những cặp chúng tôi không quan tâm, bằng cách thay thế mỗi x
, y
và z
với 1
. Một lần nữa, sự đơn giản hóa của Mathicala 1*a
luôn luôn được áp dụng a
. Phần này được thực hiện với:
/.x->1/.y->1/.z->1
Điều tuyệt vời là Mathicala biết rằng phép nhân là Orderless
do đó điều này sẽ tìm thấy hai yếu tố bất kể chúng có liền kề nhau trong sản phẩm hay không. Chỉ từ đối diện với đầu vào không còn được ghép nối trong sản phẩm, do đó từ này sẽ không bị xóa và vẫn là đầu ra duy nhất.