"L;L'!+!'_
Hãy thử trực tuyến!
Bản in này:
_'!+!'L;L"
Hãy thử trực tuyến!
Và ngược lại.
Giải trình
Đây là một sửa đổi của quine ngược . Nó hoạt động theo lợi thế của chúng tôi ở đây !
được sử dụng để in và cũng chỉ cách một đoạn mã so với trích dẫn "
. Điều đó làm cho nó dễ dàng hơn để làm cho phần in trích dẫn palindromic (the '!+!'
). Hãy bắt đầu với mã đầu tiên:
"L;L'!+!'_
Chương trình này có hai điểm vào tại L
s, mỗi điểm tạo ra một nguyên tử trái. Tuy nhiên, cái bên phải ngay lập tức đánh vào ;
thứ phá hủy nó. Cái bên trái vào chế độ chuỗi và quấn quanh đến cuối, để nó in toàn bộ mã (ngoại trừ "
) từ sau ra trước. Điều đó đã cho chúng ta _'!+!'L;L
. Tất cả chỉ còn lại là in "
. _
có thể bỏ qua, '!
đặt khối lượng của nguyên tử lên 33 (điểm mã của !
), +
tăng nó lên "
và !
in ra. Đó là tất cả các đầu ra được thực hiện. Việc 'L
đặt khối lượng nguyên tử đến điểm mã của L
nhưng điều đó không liên quan. ;
phá hủy nguyên tử này là tốt và vì không còn nguyên tử nào, chương trình chấm dứt.
Bây giờ ngược lại:
_'!+!'L;L"
Một lần nữa, chúng ta có hai điểm vào nhưng một nguyên tử bị phá hủy ngay lập tức. Lần này chúng tôi chuyển qua !+!'
phần đầu tiên, vì vậy chúng tôi bắt đầu bằng cách in một trích dẫn. Điều '_
này một lần nữa không liên quan, nhưng chúng ta cần _
(hoặc một số nhân vật vô dụng khác) ở đây để tránh '
thoát "
. Nguyên tử kết thúc đến cuối, đi qua mã nguồn một lần trong chế độ chuỗi để in phần còn lại của chương trình, L
sau đó bị bỏ qua và ;
phá hủy nguyên tử và chấm dứt chương trình.