Aceto , 19 17 octets non concurrents
Nouvelle version (17 octets):
Cette nouvelle version prend les caractères un par un et est mieux exécutée avec l' -F
option. Cela fonctionne de manière similaire, mais pas identique à la solution précédente:
>,
Op0
p|1u
,ip^
Ancienne réponse (19 octets):
(Non compétitif car j'ai dû corriger deux bugs dans l'interprète)
|p1u
iOp<
|!`X
rd!r
C’est la première réponse Aceto qui souligne ce qu’elle peut faire relativement bien, je dirais. Les "listes" sont des flux d'entrée, avec une entrée par ligne, "1" pour vrai et "0" pour faux, avec une chaîne vide indiquant la fin de la liste.
Les programmes Aceto fonctionnent sur une courbe de Hilbert, commençant en bas à gauche et se terminant en bas à droite. Premièrement, nous r
lisons une chaîne, nous la d
mettons en uplicate et la nions ( !
), transformant les chaînes vides en True, tout le reste en False. Ensuite, il y a un miroir horizontal conditionnel ( |
): si l'élément supérieur de la pile est la vérité, faites-le miroir horizontalement. Cela se produit lorsque la chaîne était vide. Si nous procédons en miroir, nous atterrissons sur le X
qui tue l’interprète.
Sinon, nous convertissons la copie restante de la pile en un i
entier et faisons un autre miroir horizontal conditionnel: Cette fois, parce que 1 est la vérité et 0 est la fausseté, nous reflétons si nous voyons la (première) valeur vraie. Si nous ne reflétons pas (nous avons donc vu un 0), nous p
imprimons ce qu'il y a sur la pile (puisque la pile est vide, un zéro) et O
passons à la rigin de la courbe, à l'endroit où nous avons commencé, en recommençant tout le processus.
Sinon, lorsque nous voyons un 1, nous reflétons et atterrissons sur la u
, ce qui inverse la direction dans laquelle nous nous déplaçons sur la courbe de Hilbert. 1p
affiche un 1, et maintenant nous suivons le même chemin que O
si nous avions vu un 0, mais puisque nous sommes en "mode inversé", notre origine est en bas à droite , nous sautons donc là.
Maintenant nous r
lisons une autre chaîne et la nions. Si la chaîne était vide, et donc de la résistance de la pile est truthy, `
ne pas échapper à la commande suivante ( X
), nous faire arrêter de fumer.
Dans le cas contraire (si la chaîne n'a pas été vide), nous n'échapper à la et l' ignorer. Dans ce cas, nous allons à gauche ( ), rint 0 (car la pile est vide), et retournons à la rigin.X
<
p
O