我知道它们之间如何相互转换,但从未真正理解它们的应用。通常的中缀操作非常易读,但是它在哪些方面失败了,导致了前缀和后缀表示法的出现呢?
我知道它们之间如何相互转换,但从未真正理解它们的应用。通常的中缀操作非常易读,但是它在哪些方面失败了,导致了前缀和后缀表示法的出现呢?
中缀表示法对于人类来说易于阅读,而前/后缀表示法则更容易被机器解析。前/后缀表示法的重要优点是不会出现任何像操作符优先级这样的问题。
例如,考虑中缀表达式 1 # 2 $ 3
。我们不知道这些运算符的含义,因此有两个可能对应的后缀表达式:1 2 # 3 $
和 1 2 3 $ #
。在不了解使用这些运算符的规则的情况下,中缀表达式基本上没有意义。
或者换句话说:可以从前/后缀表达式中恢复原始(解析)树,而不需要任何额外的知识,但对于中缀表达式来说则不成立。
1 2 # 3 $
可以等价于 $ (# 1 2) 3)
或者 $ 1 (# 2) 3)
。 - John Kugelman至少对于前缀表示法而言:使用前缀运算符的优点在于,在语法上,它读起来就像是一个函数调用。