Évaluez une expression omnifix donnée.
Omnifix est comme la notation infixe des mathématiques normales, mais avec des copies supplémentaires de chaque symbole entourant les arguments. Les symboles extérieurs remplacent les parenthèses, et il n'est donc pas nécessaire d'avoir des parenthèses supplémentaires.
Vous devez prendre en charge l'addition, la soustraction, la multiplication, la division et les nombres réels positifs (des nombres négatifs peuvent être écrits -0-n-
) dans une plage raisonnable pour votre langue.
Le plus et le moins doivent être +
et -
, mais vous pouvez utiliser *
ou ×
pour des temps et /
ou ÷
pour diviser. D'autres symboles raisonnables seront autorisés sur demande.
Brownie pointe pour des explications et des fonctionnalités supplémentaires (comme des opérations supplémentaires, des nombres négatifs, des chaînes, etc.) Même si votre réponse n'a pas ces fonctionnalités, n'hésitez pas à montrer comment cela pourrait.
Veuillez fournir un lien pour tester votre solution si possible.
Exemples
Pour plus de clarté, les explications ci-dessous utilisent un signe moins élevé ( ¯
) pour indiquer des nombres négatifs. Vous pouvez renvoyer des nombres négatifs en utilisant n'importe quel format raisonnable.
-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 peut être confondu avec -
s alors que ¯
s ne peut pas être confondu avec -
s.
The explanations below use high minus (`¯`) to indicate negative numbers.
Vous aimez vraiment APL.