Tôi biết điều này hơi muộn (và hơi khó hiểu), nhưng ...
> <> (Cá), 47 45 47 Byte (thực sự là 43 45, nếu tôi không sử dụng hướng ngẫu nhiên)
x"!tenalP ,sgniteerG"!|o|!"Greetings, Planet!"x
Những câu trả lời này hơi khác nhau; có một cơ hội cho một trong hai hướng mã được thực thi.
Vì vậy, bằng cách "in ra bàn điều khiển", tôi giả sử bạn có nghĩa là in ra thiết bị xuất chuẩn. Điều này ném một lỗi; lỗi được ném vào thiết bị lỗi chuẩn SAU chuỗi được in thành thiết bị xuất chuẩn.
Để chứng minh rằng điều này hoạt động theo cả hai cách, tôi đã sử dụng đạo diễn "hướng ngẫu nhiên", "x". Cá là một ngôn ngữ hai chiều, vì vậy, cho dù giám đốc chỉ ra bằng cách nào, mã cuối cùng vẫn sẽ được thực thi.
Giả sử rằng giám đốc đầu tiên chỉ sang phải, các ký tự được tải vào "ngăn xếp" theo thứ tự ngược lại, sau đó đảo ngược của đảo ngược (hoặc văn bản bình thường) được in.
Giả sử rằng cả hai đạo diễn đều chỉ về bên trái, các ký tự, một lần nữa, được tải vào "ngăn xếp" theo thứ tự ngược lại (vì mã tải nó ngược về đây, hướng về bên trái), sau đó ngược lại (hoặc ngược lại văn bản bình thường) được in.
Nếu giám đốc ngẫu nhiên chỉ lên hoặc xuống, điều này sẽ không thành vấn đề - cá biết vòng lặp ở mặt dưới hoặc mặt trên của mã, quay lại bộ ngẫu nhiên. Theo cách này, nó sẽ tiếp tục lặp với các bộ ngẫu nhiên cho đến khi nó hướng vào trong, hướng tới mã để thực thi.
Các !|o|!
bit làm như sau, từ cả hai phía:
!
bỏ qua hướng dẫn tiếp theo (sẽ luôn bỏ qua |
)
|
là một phản xạ; nó hướng vào trong o
.
o
xuất mục hiện tại của ngăn xếp thành bàn điều khiển dưới dạng ký tự và xóa nó khỏi ngăn xếp.
Vì vậy, về cơ bản, đây là thủ thuật "hai tấm gương trong phòng tắm được ép lên nhau", nơi tôi xuất ra cho đến khi tôi không thể nữa.
Bây giờ sử dụng biểu tượng cảm xúc mèo. >o<
chuyển hướng đầu ra vào bên trong vô tận, vẫn ném lỗi, nhưng tôi có thể thoát khỏi việc không sử dụng bỏ qua phản xạ.
Lần lượt ra tôi đã đúng lần đầu tiên - những nỗ lực thứ hai là không xuôi ngược , nhưng nó đã được phản chiếu .
Cá (không in ra stderr), 64 Byte (ew)
x"!tenalP ,sgniteerG"!;oooooooooooooooooo;!"Greetings, Planet!"x
Anh chàng này lâu hơn một chút.
Nó có cùng chức năng mũi tên ngẫu nhiên (để chứng minh rằng nó hoạt động theo cả hai cách) và không in ra stderr.
Sự khác biệt ở đây là rõ ràng; Tôi thực sự in ra tất cả các mục trong ngăn xếp, sau đó kết thúc thực hiện với ;
.
Việc !;
không kết thúc thực thi ngay lập tức, vì !
bỏ qua mục tiếp theo (end exec, trong trường hợp này) và tiếp tục cho đến khi nó chạm vào phía bên kia, hoạt động như ;!
trong đó nó kết thúc thực thi trước khi nó bỏ qua bất cứ điều gì.
Nó theo mô hình hướng ngẫu nhiên giống như câu trả lời ngắn hơn.