(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
Pruébalo en línea!
Como todos están publicando sus soluciones de 50 bytes, aquí es mía (tengo una de 48 bytes, pero fue una simple modificación de DjMcMayhem, así que sentí que valía la pena publicarla)
Explicación
Esta respuesta utiliza ampliamente la cancelación de valor.
Sin golf parece
([][()])({<{}({}[({})])>{<{}>()(<()>)}{}<([][()])>}<>)
Aquí calculamos los deltas hasta que a la pila le quede un elemento, cada vez que acumulamos un valor del bucle interno si el delta no es cero.
Esta es una forma bastante directa de hacerlo.
Para hacer esto golfístico, comenzamos a cancelar el valor. El primero y el que debería ser obvio para cualquier golfista con ataques cerebrales es la altura de la pila. Es un hecho bien conocido que
([])({<{}>...<([])>}{})
es lo mismo que
(([]){[{}]...([])}{})
Cuando los valores son modificados por uno, se mantiene lo mismo. Esto nos da
(([][()]){[{}]<({}[({})])>{<{}>()(<()>)}{}([][()])}<>)
Puede notar que esto ni siquiera nos ahorró bytes, pero no se preocupe, será más útil a medida que avancemos.
Podemos realizar otra reducción, si ve una declaración
<(...)>{<{}> ...
en realidad puedes reducirlo a
[(...)]{{} ...
Esto funciona porque si ingresamos al ciclo [(...)]y {}cancelaremos, y si no lo hacemos, el valor de [(...)]ya era cero en primer lugar y no necesita ser cancelado. Como tenemos una aparición de este patrón en nuestro código, podemos reducirlo.
(([][()]){[{}][({}[({})])]{{}()(<()>)}{}([][()])}<>)
Eso nos ahorró 2 bytes pero también puso dos negs uno al lado del otro. Estos se pueden combinar para salvarnos otros 2.
(([][()]){[{}({}[({})])]{{}()(<()>)}{}([][()])}<>)
Y ese es nuestro código.
Falsese imprime en su lugar?