那你也不能以某种特定条件下最坏情况是np hard来以偏概全,拿来当结论吧。
怎么优化是你的事,我只强调一点,case必然具有等价的if else表达方式。
所以case最坏的结果就是等价的if else。
【 在 philbloo 的大作中提到: 】
: 我没有钻牛角尖,我最近在写 Python 的 parser 和 compiler,所以对这方面的问题知道的多一点。
: 从你这个回答,我认为你把编译的过程和结果弄混了。编译结果是什么,不管是不是 jmp table ,在这个讨论里并不重要。因为我们讨论的是编译过程的复杂度。
: 而一旦遇到了 pattern match 的语法,就必须做 constraints 分析,哪怕最终的结果是整个语法块都可以去除。所以,pattern match 是为了更容易优化,或者 pattern match 可以导致更优化的 target ,都不成立。事实上,if-else 同样可以编译出 jmp table 的 target 。
: ...................
--
FROM 222.212.168.*