So che è un po 'tardi (e un po' schizzinoso), ma ...
> <> (Pesce), 47 45 47 byte (in realtà 43 45, se non stavo usando la direzione randomizzata)
x"!tenalP ,sgniteerG"!|o|!"Greetings, Planet!"x
Queste risposte sono leggermente diverse l'una dall'altra; esiste la possibilità che entrambe le direzioni del codice vengano eseguite.
Quindi, "stampando su console", ho pensato che intendessi stampare su stdout. Questo genera un errore; l'errore viene generato su stderr DOPO che la stringa viene stampata su stdout.
Per dimostrare che questo ha funzionato in entrambi i modi, ho usato il regista "direzione casuale", "x". Fish è un linguaggio bidimensionale, quindi, indipendentemente dal modo in cui il regista indica, il codice verrà comunque (eventualmente) eseguito.
Supponendo che il primo regista punti a destra, i personaggi vengono caricati nella "pila" in ordine inverso, quindi viene stampato il retro del contrario (o il testo normale).
Supponendo che entrambi i registi puntino a sinistra, i personaggi vengono, ancora una volta, caricati nello "stack" in ordine inverso (poiché il codice lo carica qui all'indietro, la direzione è a sinistra), quindi il contrario dell'inverso (o il testo normale) viene stampato.
Se il regista randomizzato punta verso l'alto o verso il basso, questo non ha importanza: fish sa fare un giro nella parte inferiore o esterna del codice, indicando di nuovo il randomizzatore. In questo modo, continuerà a girare con i randomizzatori fino a quando non punta verso l'interno, verso il codice da eseguire.
Il !|o|!
bit fa quanto segue, da entrambi i lati:
!
salta la prossima istruzione (salterà sempre |
)
|
è un riflettore; punta verso l'interno di nuovo verso o
.
o
genera l'elemento corrente dello stack per consolarlo come personaggio e lo rimuove dallo stack.
Quindi, in sostanza, questo è il trucco "due specchi in un bagno uniti", in cui esco fino a quando non ci riesco più.
Ora usando un'emoji gatto. >o<
reindirizza l'output verso l'interno all'infinito, generando ancora l'errore, ma posso cavarmela senza usare un salto in riflessione.
Ho scoperto che avevo ragione la prima volta: il secondo tentativo non era palindromico , ma era riflessivo .
Pesce (senza stampa su stderr), 64 byte (ew)
x"!tenalP ,sgniteerG"!;oooooooooooooooooo;!"Greetings, Planet!"x
Questo tipo è un po 'più lungo.
Ha la stessa funzione di freccia randomizzata (per dimostrare che funziona in entrambi i modi) e non stampa su stderr.
La differenza qui è evidente; Stampo letteralmente ogni oggetto nella pila, quindi termino l'esecuzione con ;
.
L'operazione !;
non termina immediatamente, poiché !
salta l'elemento successivo (end exec, in questo caso) e continua fino a quando non colpisce l'altro lato, che funge da ;!
, in cui termina l'esecuzione prima di saltare qualsiasi cosa.
Segue lo stesso modello di direzione randomizzato della risposta più breve.