我知道Lisp和Scheme程序员通常会说,除非绝对必要,否则应避免使用
例如,我知道在过程式编程中使用
有趣的是,与
eval
。我看到过几种编程语言的相同建议,但我还没有看到一份明确反对使用eval
的论据清单。在哪里可以找到关于使用eval
的潜在问题的说明呢?例如,我知道在过程式编程中使用
GOTO
会带来问题(使程序难以阅读和维护,使安全问题难以发现等),但我从未见过反对eval
使用的论据。有趣的是,与
GOTO
使用的相同论点也适用于continuations,但我看到Schemers不会说continuations是“邪恶的”--你只需要在使用它们时小心。他们更可能对使用eval
的代码表示不满,而不是对使用continuations的代码(就我所见--我可能错了)。