(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
Спробуйте в Інтернеті!
Оскільки всі публікують свої 50-байтні рішення, це моє (у мене є 48-байтне) байтне, але це була проста модифікація DjMcMayhem, тому я вважав, що варто опублікувати)
Пояснення
У цій відповіді широко використовується скасування значення.
Без гольфу це схоже
([][()])({<{}({}[({})])>{<{}>()(<()>)}{}<([][()])>}<>)
Тут ми обчислюємо дельти до тих пір, поки у стеку не залишиться один елемент, кожного разу ми накопичуємо одне значення з внутрішньої петлі, якщо дельта не дорівнює нулю.
Це досить прямий спосіб зробити це.
Щоб зробити цей гольф, ми починаємо скасовувати цінність. Перший і той, який повинен бути очевидним для будь-якого загартованого гольфіста, що займається мозку, - це висота стека. Загальновідомий факт, що
([])({<{}>...<([])>}{})
те саме, що
(([]){[{}]...([])}{})
Коли значення модифікуються одним, те ж саме є. Це нам дає
(([][()]){[{}]<({}[({})])>{<{}>()(<()>)}{}([][()])}<>)
Ви можете помітити, що це навіть не врятувало нас байтами, але не бідайте, воно стане кориснішим у міру продовження.
Ми можемо виконати ще одне зменшення, якщо ви побачите заяву
<(...)>{<{}> ...
ви можете насправді зменшити його
[(...)]{{} ...
Це працює, тому що якщо ми введемо цикл [(...)]і {}скасуємо, а якщо ми не зробимо значення, [(...)]було в першу чергу нульовим, і його не потрібно скасовувати. Оскільки у нас в коді є така модель, ми можемо її зменшити.
(([][()]){[{}][({}[({})])]{{}()(<()>)}{}([][()])}<>)
Це врятувало нас 2 байти, але також поставило два гнізда поруч. Їх можна комбінувати, щоб врятувати нас ще 2.
(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
І це наш код.
Falseдорівнює 0, друкується замість цього?