【问题标题】:"Fake" global lexical variables in Common LispCommon Lisp 中的“假”全局词法变量
【发布时间】:2013-06-18 00:03:56
【问题描述】:

Google Common Lisp Style Guide 的“全局变量和常量”一节中声明:

“Common Lisp 没有全局词法变量,因此使用命名约定来确保动态绑定的全局变量的名称永远不会与局部变量重叠。

可以使用不同名称的全局变量和DEFINE-SYMBOL-MACRO 来伪造全局词法变量。你不应该使用这个技巧,除非你首先发布一个将它抽象出来的库。”

谁能帮我理解最后一句的意思。

【问题讨论】:

    标签: lisp global-variables common-lisp lexical-scope


    【解决方案1】:

    最后一句话,

    你不应该使用这个技巧,除非你首先发布一个将它抽象出来的库。

    意味着如果你做了一些模拟全局词法变量的事情,那么这个模拟的实现对用户来说应该是不明显的。例如,您可以使用define-symbol-macro 的某种方案模拟全局词汇,但如果这样做,它应该对用户透明。请参阅 Ron Garret 的 GLOBALS — Global Variables Done Right,了解“将其抽象化的库”的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-29
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多