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