(([]){[{}]{}([])}{})ers, find the sum of all integers in it.
Спробуйте в Інтернеті!
Пояснення
Оскільки в оригінальному тексті немає дужок, це зводиться до проблеми з кодовим гольфом у 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
розміщення, ми просто переміщуємо його в поштовх, щоб вирівняти речі.
(([]){[{}]{}([])}{})