Saya sedang menjelajahi esolang, dan kebetulan menggunakan bahasa ini: https://github.com/catseye/Quylthulg .
Satu hal yang menarik tentang bahasa ini, adalah bahwa ia tidak menggunakan awalan, postfix, atau infix, ia menggunakan ketiganya , menyebutnya "panfix" notasi.
Berikut ini sebuah contoh. Untuk mewakili infiks yang normal 1+2di panfix, menjadi: +1+2+. Perhatikan bagaimana operator keduanya sebelum, di antara, dan setelah operan. Contoh lain adalah (1+2)*3. Ini menjadi *+1+2+*3*. Perhatikan lagi bagaimana *di ketiga tempat sehubungan dengan operan +1+2+dan 3.
Tantangan
Seperti yang sudah Anda tebak, tugas Anda dalam tantangan ini adalah mengubah ekspresi dari infix ke panfix.
Beberapa klarifikasi:
- Anda hanya perlu berurusan dengan empat operasi dasar:
+-*/ - Anda tidak perlu berurusan dengan versi unary itu, hanya biner
- Anda harus berurusan dengan tanda kurung
- Asumsikan aturan presedensi normal
*/saat itu+-dan tinggalkan asosiasi untuk mereka semua. - Angka-angka akan menjadi bilangan bulat tidak negatif
- Secara opsional Anda dapat memiliki spasi di input dan output
Uji Kasus
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-*
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!

S.split``seharusnya[...S], meskipun sebenarnya bisa membantu untuk mencocokkan di/\d+|./gmuka dan bekerja sebagai gantinya.