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.