Sé que esto es un poco tarde (y un poco quisquilloso), pero ...
> <> (Pez), 47 45 47 Bytes (realmente 43 45, si no estuviera usando la dirección aleatoria)
x"!tenalP ,sgniteerG"!|o|!"Greetings, Planet!"x
Estas respuestas son un poco diferentes entre sí; existe la posibilidad de que se ejecute cualquier dirección de código .
Entonces, al "imprimir en la consola", supuse que se refería a imprimir en stdout. Esto arroja un error; el error se lanza a stderr DESPUÉS de que la cadena se imprime en stdout.
Para demostrar que esto funcionó en ambos sentidos, utilicé el director de "dirección aleatoria", "x". Fish es un lenguaje bidimensional, por lo tanto, no importa en qué dirección señale el director, el código se ejecutará (eventualmente).
Suponiendo que el primer director apunta a la derecha, los personajes se cargan en la "pila" en orden inverso, luego se imprime el reverso del reverso (o el texto normal).
Suponiendo que ambos directores apuntan a la izquierda, los personajes se cargan una vez más en la "pila" en orden inverso (porque el código lo carga al revés aquí, la dirección es a la izquierda), luego el reverso del reverso (o se imprime el texto normal).
Si el director aleatorizado apunta hacia arriba o hacia abajo, esto no importará: el pez sabe hacer un bucle en la parte inferior o superior del código, apuntando hacia el aleatorizador. De esta manera, continuará girando con los aleatorizadores hasta que apunte hacia adentro, hacia el código a ejecutar.
El !|o|!
bit hace lo siguiente, desde ambos lados:
!
salta la siguiente instrucción (siempre saltará |
)
|
es un reflector; apunta hacia adentro hacia atrás o
.
o
saca el elemento actual de la pila a la consola como un personaje y lo elimina de la pila.
Entonces, esencialmente, este es el truco de "dos espejos en un baño juntos", donde salgo hasta que ya no puedo.
Ahora usando un gato emoji. >o<
redirige la salida hacia el interior infinitamente, aún arrojando el error, pero puedo evitar no usar un salto en la reflexión.
Resulta que tenía razón la primera vez: el segundo intento no fue palindrómico , pero fue reflexivo .
Pescado (sin imprimir en stderr), 64 bytes (ew)
x"!tenalP ,sgniteerG"!;oooooooooooooooooo;!"Greetings, Planet!"x
Este tipo es un poco más largo.
Tiene la misma función de flecha aleatoria (para demostrar que funciona en ambos sentidos) y no imprime en stderr.
La diferencia aquí es obvia; Literalmente imprimo cada elemento en la pila, luego finalizo la ejecución con ;
.
El !;
no finaliza la ejecución inmediatamente, ya que !
omite el siguiente elemento (end exec, en este caso) y continúa hasta que llega al otro lado, que actúa como ;!
, en el que finaliza la ejecución antes de omitir cualquier cosa.
Sigue el mismo patrón de dirección aleatorio que la respuesta más corta.