(([]){[{}]{}([])}{})ers, find the sum of all integers in it.
Попробуйте онлайн!
объяснение
Поскольку в исходном тексте нет скобок, это сводится к код-гольфу проблеме в Brain-Flak. Но это все еще не делает этот ответ тривиальным, поскольку ответы в Brain-Flak редко бывают.
Первая интуиция, вероятно, будет следующим кодом
({{}})
Что работает ... если только в стеке нет нуля, в этом случае он просто суммирует до нуля. Чтобы обойти эту проблему, мы должны использовать высоту стека, чтобы убедиться, что стек не пуст. Это можно настроить так
([]) #{ 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 }
Этот работает, но с ним что-то не так. Мы продолжаем заглушать трещины и толчки в петлях, но они почти равны, поэтому должен быть способ их отменить. Если мы попробуем
([])({[{}]{}([])}{})
Мы заканчиваем n
каждый раз. Итак, вот фокус, у нас уже есть место n
, мы просто перемещаем его в толчок, чтобы уравновесить ситуацию.
(([]){[{}]{}([])}{})