(([]){[{}]{}([])}{})ers, find the sum of all integers in it.
Probieren Sie es online!
Erläuterung
Da es im Originaltext keine Klammern gibt, führt dies zu einem Code-Golf- Problem in Brain-Flak. Aber das macht diese Antwort immer noch nicht trivial, wie es bei Brain-Flak selten der Fall ist.
Die erste Intuition wäre wahrscheinlich der folgende Code
({{}})
Was funktioniert ... es sei denn, es gibt eine Null auf dem Stapel. In diesem Fall summiert es nur bis zur Null. Um dieses Problem zu umgehen, müssen wir eine Stapelhöhe verwenden, um zu überprüfen, ob der Stapel nicht leer ist. Dies kann so eingestellt werden
([]) #{ Push stack height }
( #{ Start Push }
{ #{ Loop until zero }
<{}> #{ Silently Pop the last height }
{} #{ Grab a value from the stack }
<([])> #{ Silently push the stack height again }
} #{ End loop }
{} #{ Remove last stack height }
) #{ Push the result }
Dieser funktioniert, aber irgendetwas stimmt nicht. Wir bringen die Pops und Pushs in den Loops immer wieder zum Schweigen, aber sie sind fast gleich groß, daher sollte es eine Möglichkeit geben, sie aufzuheben. Wenn wir es versuchen
([])({[{}]{}([])}{})
Wir landen n
jedes Mal weg . Also hier ist der Trick, wir haben bereits einen n
Standort, wir verschieben ihn einfach in den Push, um die Dinge auszugleichen.
(([]){[{}]{}([])}{})