12
为什么到底是邪恶?
我知道Lisp和Scheme程序员通常会说eval除非绝对必要,否则应避免这样做。对于几种编程语言,我已经看到了相同的建议,但是尚未看到反对使用的明确参数列表eval。在哪里可以找到有关使用潜在问题的说明eval? 例如,我知道GOTO过程编程中的问题(使程序难以阅读且难以维护,很难找到安全性问题,等等),但是我从未见过反对的论点eval。 有趣的是,相同的论点GOTO应该对延续有效,但我看到例如Schemers不会说延续是“邪恶的”-使用它们时应该小心。与eval使用延续的代码相比,他们更不喜欢使用代码(据我所知-我可能是错的)。
141
clojure
scheme
lisp
common-lisp
eval