“当然我们可以想出足够稀有的名字,这样问题就永远不会出现。是的,在很多情况下,包和智能变量命名可以解决变量捕获的问题。但是,大多数严重的变量捕获错误不会直接出现在代码中“ _ _
然后它没有给我一个粗体部分的例子。这样的例子之一是什么?想象一个假想的 Lisp 开发团队,其疯狂的老板禁止使用 gensym 或任何会创建 uninterned 符号的东西,而程序员只要在错过 gensym 时就简单地投掷字母数字骰子来想出诸如 temp-27s63f8sk2n 或 sum-3t84hj4df 之类的随机变量名称。什么是团队会遇到麻烦的例子?
说到这一点,Emacs 24.3.1 定义了 dotimes 和 dolist 而不使用 uninterned 符号。诡异的。