Оцените данное выражение омнификса.
Omnifix похож на инфиксную нотацию обычной математики, но с дополнительными копиями каждого символа, окружающего аргументы. Внешние символы заменяют скобки, и поэтому нет необходимости в дополнительных скобках.
Вы должны поддерживать сложение, вычитание, умножение, деление и положительные действительные числа (можно записать отрицательные -0-n-
) в разумных пределах для вашего языка.
Плюс и минус должны быть +
и -
, но вы можете использовать *
или ×
для раз и /
или ÷
для деления. Другие разумные символы будут разрешены по запросу.
Брауни указывает на пояснения и дополнительные функции (такие как дополнительные операции, отрицательные числа, строки и т. Д.) Даже если в вашем ответе нет этих функций, не стесняйтесь показать, как это возможно.
Пожалуйста, предоставьте ссылку, чтобы проверить ваше решение, если это возможно.
Примеры
Для ясности нижеприведенные пояснения используют высокий минус ( ¯
) для обозначения отрицательных чисел. Вы можете вернуть отрицательные числа, используя любой разумный формат.
-5-2-
→ 3
+2+×3×2×+
→ 8
( +2+×3×2×+
→ +2+6+
→ 8
)
-14--3-1--
→ 12
( -4--3-1--
→ -14-2-
→ 12
)
+2.1+×3.5×2.2×+
→ 9.8
( +2.1+×3.5×2.2×+
→ +2.1+7.7+
→ 9.8
)
×3×÷-0-6-÷2÷×
→ -9
( ×3×÷-0-6-÷2÷×
→ ×3×÷¯6÷2÷×
→ ×3ׯ3×
→ ¯9
)
÷4÷-3-÷1÷2÷-÷
→ 1.6
( ÷4÷-3-÷1÷2÷-÷
→ ÷4÷-3-0.5-÷
→ ÷4÷2.5÷
→ 1.6
)
-
s можно спутать с -
s, а ¯
s нельзя спутать с -
s.
The explanations below use high minus (`¯`) to indicate negative numbers.
Вы определенно любите APL.