如何解决比起像 cdaddr 这样的 car 和 cdr 的组合,优先选择先休息的 lisps 是如何处理的?
Lisp 社区中最大的分歧之一是我们是否应该拥有 car
和 cdr
或 first
和 rest
。传统的 car
和 cdr
的好处之一是我们可以将它们组合起来产生像 cdaddr
这样的发音函数。不使用 car
和 cdr
的 Lisps(例如 Clojure)通常如何与 first
和 rest
形成这样的组合?有共识吗?
解决方法
无论如何,Clojure 根本不需要 caddaadr 和朋友,因为没有人仅从 cons 单元构建数据结构。该语言确实有 first
和 next
中任意两个的组合,命名为 ffirst
、fnext
、nnext
和 nfirst
,它们被添加很早就我想是因为假设我们想要像cadr这样的东西,但我从来没有看到它们在现实生活中使用过。而是经常使用解构。
在极少数情况下,您需要深入了解由嵌套序列构建的结构,解构通常仍会生成可读代码,但手写代码也不会造成太大负担。这也是对您的一个很好的提示,也许您应该对事物进行更多抽象,而不是直接使用这么多原始组合器层。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。