Aceto , 49 bytes
&M"pp"
L!)(de
&c;`Che"
`!d!sick
!',@p"!'
'N'U`!Lu
yadda yadda Hilbert curva.
En primer lugar, empujamos los tres personajes importantes en la pila:
!'
'N'U
Luego establecemos una marca y comenzamos leyendo un solo carácter. Lo d
duplicamos y lo negamos, y si el resultado de esto es verdadero (por lo tanto, si la cadena estaba vacía; así que la entrada terminó), saltamos al final:
;`
d!
,@
Con la copia restante del carácter de entrada, verificamos si está contenido en el resto de la pila (es decir, si es uno de!, N, U). Si no es así, generamos un error, devolviéndonos a nuestra marca de captura donde leemos otro personaje:
&c
`!
De lo contrario, cargamos lo que está en el almacenamiento rápido (esencialmente un registro que inicialmente es una cadena vacía; falso), lo negamos y lo enviamos de vuelta al almacenamiento rápido, luego también generamos el error (volviendo a leer los caracteres):
&M
L!
Cuando la entrada se detuvo, somos enviados al final. Allí, invertimos la dirección, empujamos un signo de exclamación y cargamos el almacenamiento rápido y lo negamos. Si eso es verdad (es decir, hemos tenido un número impar de cosas de negación), imprimimos el signo de exclamación que hemos empujado:
p !'
`!Lu
Finalmente, empujamos la cadena en dos partes e las imprimimos (por razones de ahorro de espacio):
"pp"
)(de
Che"
sick
"
Después, el programa todavía se ejecuta de nuevo al principio original, pero dado que ninguno de los comandos genera nada o tiene un comportamiento en bucle, eso no importa. En realidad, el primer comando sin nopping que alcanzamos genera una excepción, omitiendo la mayoría del código porque saltamos a la marca de captura, lo que significa que todo lo que Aceto ve en esa parte es:
&
!' @
'N'U
Puesto que U
ahora no está precedido por un carácter de comilla simple y por lo tanto no se ve como un carácter literal, se interpreta como un comando: U
invierte todos los elementos en la pila (ahora es !
, N
, U
, desde la parte superior), y 'N
e '!
impulsar más caracteres, lo que significa que terminamos con la pila [U, N, !, N, !]
.
Nota al margen: este es el primer programa de Aceto escrito (en parte) con la ayuda del nuevo editor de Aceto .
notunischecked
?