Oceń dane wyrażenie omnifix.
Omnifix przypomina notację normalną matematyki, ale z dodatkowymi kopiami każdego symbolu otaczającego argumenty. Symbole zewnętrzne zastępują nawiasy, dlatego nie ma potrzeby wprowadzania dodatkowych nawiasów.
Musisz obsługiwać dodawanie, odejmowanie, mnożenie, dzielenie i dodatnie liczby rzeczywiste (liczby ujemne można zapisać -0-n-) w rozsądnym zakresie dla twojego języka.
Plus i minus muszą być +i -, ale możesz użyć *lub ×dla czasów i /lub ÷do podziału. Inne rozsądne symbole będą dozwolone na żądanie.
Punkty Brownie za wyjaśnienia i dodatkowe funkcje (takie jak dodatkowe operacje, liczby ujemne, ciągi itp.) Nawet jeśli twoja odpowiedź nie ma tych funkcji, możesz pokazać, jak to możliwe.
Podaj link, aby w miarę możliwości przetestować swoje rozwiązanie.
Przykłady
Dla jasności w poniższych objaśnieniach użyto wysokiej minus ( ¯) do wskazania liczb ujemnych. Możesz zwrócić liczby ujemne w dowolnym rozsądnym formacie.
-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 można pomylić z -s, a ¯s nie można pomylić z -s.
The explanations below use high minus (`¯`) to indicate negative numbers.Zdecydowanie kochasz APL.