Biliyorum bu biraz geç (ve biraz titiz), ama ...
> <> (Balık), 47 45 47 Bayt ( eğer rastgele yönü kullanmıyorsam gerçekten 43 45)
x"!tenalP ,sgniteerG"!|o|!"Greetings, Planet!"x
Bu cevaplar birbirinden biraz farklı; her iki kod yönü için bir şans var de yürütülme .
Bu yüzden, "konsola yazdır" derken, stdout'a yazdırmayı kastettiğinizi varsaydım. Bu bir hata veriyor; Dize stdout'a yazdırıldıktan SONRA hata stderr'e atılır.
Bunun her iki yönde de işe yaradığını ispat etmek için "rastgele yön" yönetmeni "x" i kullandım. Balık iki boyutlu bir dildir, bu nedenle, yönetmenin hangi yöne işaret ettiği önemli değildir, kod yine de (en sonunda) yürütülür.
İlk yönetmenin sağa işaret ettiğini farz edersek, karakterler "yığına" ters sırada yüklenir, sonra tersinin (veya normal metnin) tersi yazdırılır.
Her iki yöneticinin de sola işaret ettiğini farz edersek, karakterler bir kez daha "yığına" ters sırayla yüklenir (çünkü kod burada geriye doğru yüklenir, yön sola doğrudur), sonra tersinin tersi (veya normal metin) yazdırılır.
Eğer randomize yönetmen yukarı veya aşağıya işaret ederse, bu önemli olmaz - balık, kodlayıcıya geri dönerek, randomizer'a geri dönmeyi bilir. Bu şekilde, randomize ediciler ile içeriye dönük ve yürütülecek koda doğru dönmeye devam edecektir.
!|o|!
Bit her iki taraftan şunları yapar:
!
sonraki talimatı atlar (her zaman atlar |
)
|
bir reflektördür; doğru geriye doğru işaret eder o
.
o
yığının geçerli öğesini, bir karakter olarak konsola çıkarır ve yığından kaldırır.
Yani, esasen, bu, "bir banyoda iki ayna bir arada bastırıldı" numarasıdır;
Şimdi bir kedi emoji kullanarak. >o<
çıkışı sürekli olarak içeriye doğru yönlendirir, yine de hatayı fırlatır, ancak yansımayı atlamadan kullanmadan kurtulabilirim.
İlk defa haklı olduğum ortaya çıktı - ikinci girişim palindromik değildi , ama yansıtıcıydı. .
Balık (stderr basılmadan), 64 Bayt (ew)
x"!tenalP ,sgniteerG"!;oooooooooooooooooo;!"Greetings, Planet!"x
Bu herif biraz daha uzun.
Aynı rasgele ok işlevine sahiptir (her iki yönde de çalıştığını kanıtlamak için) ve stderr'ye yazdırmaz.
Buradaki fark açıktır; Kelimenin tam anlamıyla yığındaki her öğeyi yazdırıyorum, sonra yürütmeyi sonlandırıyorum;
.
Bir sonraki öğeyi atladığı için !;
derhal yürütmeyi !
durdurmaz (bu durumda son yürütmeyi sonlandırır) ve diğer tarafa ulaşana kadar devam eder.;!
böyle bir şey atlanmadan yürütmeyi bitirdiği .
Kısa cevapla aynı randomize yön modelini izler.