有没有一种方法可以像 Clojure 中那样在 Common Lisp 中使用关键字作为函数?
在 Clojure 中,可以编写
(:foo {:foo 3 :bar 5})
计算结果为 3 的代码。有没有办法扩展 Common Lisp,以便关键字充当查找自身的函数?
In Clojure one can write
(:foo {:foo 3 :bar 5})
which evaluates to 3. Is there any way to extend Common Lisp so that a keyword will act as a function that looks itself up?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
AFAIK,在可移植的 Common Lisp 中,没有简单、明显或琐碎的方法可以通用地做到这一点。
一些早期的 Lisp 方言中提供了相关功能(针对数组),但 Common Lisp 中并未包含该功能。
There are no easy, obvious or trivial ways to do that in a general way in portable Common Lisp, AFAIK.
Related functionality (for arrays) was provided in some earlier Lisp dialects, but it was not included in Common Lisp.