Я переглядав esolangs і переглядав цю мову: https://github.com/catseye/Quylthulg .
Цікава річ у цій мові - це те, що вона не використовує префікса, постфікса чи інфіксацію, вона використовує всі три з них , називаючи це позначенням "panfix".
Ось приклад. Щоб уявити нормальний Інфікси 1+2
в panfix, вона стає: +1+2+
. Зауважте, як оператор є і перед, і між операндами, між ними та після них. Інший приклад - (1+2)*3
. Це стає *+1+2+*3*
. Зауважте ще раз, як *
у всіх трьох місцях щодо операндів +1+2+
та 3
.
Змагання
Як ви вже здогадалися, ваше завдання в цьому виклику - перетворити вираз з інфіксації в панфікс.
Кілька роз'яснень:
- Ви повинні мати справу лише з чотирма основними операціями:
+-*/
- Вам не доведеться мати справу з одинарними версіями, лише бінарними
- Ви повинні мати справу з дужками
- Припустимо нормальні правила пріоритетності
*/
тодішньої+-
та лівої асоціативності для всіх них. - Числа будуть невід’ємними цілими числами
- При необхідності ви можете мати пробіли і в вході, і у виході
Випробування
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-*
Це код-гольф , тому найкоротший код у байтах виграє!
S.split``
Це повинно бути[...S]
, хоча це насправді може допомогти узгодитись/\d+|./g
наперед та працювати на цьому.