Stavo navigando su esolangs e ho provato questa lingua: https://github.com/catseye/Quylthulg .
Una cosa interessante di questo linguaggio è che non usa prefisso, postfisso o infisso, li usa tutti e tre , chiamandolo notazione "panfix".
Ecco un esempio Per rappresentare normale infisso 1+2in panfix, diventa: +1+2+. Notare come si trova l'operatore prima, tra e dopo gli operandi. Un altro esempio è (1+2)*3. Questo diventa *+1+2+*3*. Notare di nuovo come si *trova in tutti e tre i punti rispetto agli operandi +1+2+e 3.
La sfida
Come avrai intuito, il tuo compito in questa sfida è convertire un'espressione da infix a panfix.
Alcuni chiarimenti:
- Devi solo affrontare le quattro operazioni di base:
+-*/ - Non dovrai avere a che fare con le versioni unarie di quelle, solo binarie
- Devi fare i conti con la parentesi
- Assumi le normali regole di precedenza di
*/allora+-e associa la sinistra a tutte. - I numeri saranno numeri interi non negativi
- Opzionalmente puoi avere uno spazio sia in input che in output
Casi test
1+2 -> +1+2+
1+2+3 -> ++1+2++3+
(1+2)*3 -> *+1+2+*3*
10/2*5 -> */10/2/*5*
(5+3)*((9+18)/4-1) -> *+5+3+*-/+9+18+/4/-1-*
Questo è code-golf , quindi vince il codice più breve in byte !

S.split``dovrebbe essere[...S], anche se in realtà potrebbe essere utile abbinare in/\d+|./ganticipo e lavorare invece su quello.