(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
Essayez-le en ligne!
Étant donné que tout le monde publie ses solutions de 50 octets, voici la mienne (j'en ai une de 48 octets, mais c'était une simple modification de DjMcMayhem, donc j'ai senti que cela valait la peine d'être publié)
Explication
Cette réponse utilise largement l'annulation de valeur.
Sans golf, il ressemble
([][()])({<{}({}[({})])>{<{}>()(<()>)}{}<([][()])>}<>)
Ici, nous calculons les delta jusqu'à ce qu'il reste un élément à la pile, chaque fois que nous accumulons une valeur de la boucle interne si le delta n'est pas nul.
C'est une façon assez simple de le faire.
Pour faire ce golf, nous commençons à annuler la valeur. Le premier et celui qui devrait être évident pour tout golfeur endurci de flak de cerveau est la hauteur de la pile. C'est un fait bien connu que
([])({<{}>...<([])>}{})
est le même que
(([]){[{}]...([])}{})
Lorsque les valeurs sont modifiées par un, il en va de même. Cela nous donne
(([][()]){[{}]<({}[({})])>{<{}>()(<()>)}{}([][()])}<>)
Vous remarquerez peut-être que cela ne nous a même pas sauvé des octets, mais ne vous inquiétez pas, cela deviendra plus utile au fur et à mesure.
Nous pouvons effectuer une autre réduction, si vous voyez une déclaration
<(...)>{<{}> ...
vous pouvez réellement le réduire à
[(...)]{{} ...
Cela fonctionne parce que si nous entrons dans la boucle [(...)]
et que {}
nous annulerons, et si nous ne le faisons pas, la valeur de [(...)]
déjà était zéro en premier lieu et n'a pas besoin d'être annulée. Puisque nous avons une occurrence de ce modèle dans notre code, nous pouvons le réduire.
(([][()]){[{}][({}[({})])]{{}()(<()>)}{}([][()])}<>)
Cela nous a permis d'économiser 2 octets, mais cela a également mis deux négatifs l'un à côté de l'autre. Ceux-ci peuvent être combinés pour nous sauver encore 2.
(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
Et c'est notre code.
False
est-il imprimé à la place?