Introducción
Escriba un programa completo que gire un bloque rectangular de caracteres ASCII 90 grados en el sentido de las agujas del reloj. Cuando el programa en sí mismo gira 90 grados en el sentido de las agujas del reloj, gira un bloque de caracteres ASCII 90 en sentido antihorario.
Reglas
- Es posible que no use incorporados que roten o transpongan matrices. Por ejemplo, en MATLAB / Octave
rot90
y el operador de transposición'
no están permitidos. - Debe escribir un programa completo que use STDIN y STDOUT o el equivalente más cercano.
- Su programa debe ser rectangular y asumir que la entrada también es rectangular.
- La entrada y la salida son cadenas separadas por una nueva línea y no tendrán nuevas líneas finales.
Cuando se ejecuta con su código fuente como entrada, su programa debe girar 90 grados en el sentido de las agujas del reloj. La salida debe ser un segundo programa en el mismo idioma que gira su entrada 90 grados en sentido antihorario. Cuando el programa girado recibe su código fuente como entrada, debe generar el código fuente del programa original.
Nota: Ambos programas deben funcionar para cualquier entrada, no solo para su propio código fuente, por lo que no se permite una quine de un carácter.
Ejemplo
Digamos que el siguiente es un programa válido que gira su entrada 90 grados en un lenguaje hipotético ExampleLang.
^f a2% 3
lk (^_^&
v
D8 $4 /
Cuando se ejecuta consigo mismo como entrada, genera otro programa válido que gira su entrada en sentido antihorario:
D l^
8 kf
$ (a
4 ^2
_%
^
/v&3
Este segundo programa, cuando se da a sí mismo como entrada, emite el programa original. Tenga en cuenta que la línea en blanco debe tener cuatro espacios y hay un espacio final en la penúltima línea que no se puede representar en markdown. Para aclarar:
$ examplelang program < program > rotProg
$ examplelang rotProg < rotProg > program1
$ diff -s program program1
Files program and program1 are identical
El programa más corto gana. Las lagunas estándar están prohibidas.
:.+
puede dividir en varias líneas?