Aceto , 49 octets
&M"pp"
L!)(de
&c;`Che"
`!d!sick
!',@p"!'
'N'U`!Lu
yadda yadda Hilbert courbe.
Tout d’abord, nous plaçons les trois personnages importants sur la pile:
!'
'N'U
Ensuite, nous mettons un crochet et commençons par lire un seul caractère. Nous l' d
upliquons et le nions, et si le résultat est vrai (si la chaîne était vide; l'entrée est donc terminée), nous sautons à la fin:
;`
d!
,@
Avec la copie restante du caractère saisi, nous vérifions s'il est contenu dans le reste de la pile (c'est-à-dire s'il s'agit de!, N, U). Si ce n'est pas le cas, nous générons une erreur et nous renvoyons à notre cible où nous lisons un autre personnage:
&c
`!
Sinon, nous chargeons ce qui est sur le stockage rapide (essentiellement un registre qui est initialement une chaîne vide; falsy), le nions et le renvoyons à un stockage rapide, puis nous soulevons aussi l'erreur (retour à la lecture des caractères):
&M
L!
Lorsque l'entrée est arrêtée, nous sommes envoyés à la fin. Là, nous inversons la direction, poussons un point d’exclamation, chargeons un stockage rapide et le nions. Si cela est vrai (c'est-à-dire que nous avons eu un nombre impair de choses négatives), nous imprimons le point d'exclamation que nous avons poussé:
p !'
`!Lu
Enfin, nous poussons la chaîne en deux parties et les imprimons (pour des raisons de gain de place):
"pp"
)(de
Che"
sick
"
Par la suite, le programme revient toujours au début d'origine, mais comme aucune commande ne génère quoi que ce soit ou n'a un comportement bouclé, cela n'a pas d'importance. En fait, la première commande non-invasive que nous atteignons lève une exception, ignorant la majorité du code car nous sautons à la cible, ce qui signifie que tout ce que Aceto voit dans cette partie est:
&
!' @
'N'U
Depuis U
maintenant n'est pas précédée par un guillemet simple et est donc pas considéré comme un caractère littéral, il est interprété comme une commande: U
inverse tous les éléments sur la pile (il est maintenant !
, N
, U
, du haut), et 'N
et '!
pousser plus caractères, ce qui signifie que nous terminons avec la pile [U, N, !, N, !]
.
Note latérale: Ceci est le premier programme Aceto écrit (en partie) avec l'aide du nouvel éditeur d' Aceto .
notunischecked
?