Hasty Briefsbeta

双语

Naming code, the value-identity relation

7 months ago
  • #programming
  • #clojure
  • #naming
  • 命名是计算机科学中两大难题之一,另一个是缓存失效问题。
  • 名称作为间接层或抽象层,对管理软件开发中的复杂性至关重要。
  • 软件工程需要创造大量名称,但计算机科学教育中很少深入探讨命名问题。
  • Clojure的`def`会创建一个以符号为标识的全局变量,该符号在求值时会被其值替代。
  • Clojure.spec的`def`使用带命名空间的关键词作为标识,这与Clojure使用符号的`def`不同。
  • 本文探讨了为`clojure.spec/keys`使用复合标识的想法,以避免为每个键组合单独定义规范。
  • 示例展示了如何基于命名空间关键词的组合定义规范,而无需创建新的命名规范。