无论如何,Clojure 根本不需要 caddaadr 和朋友,因为没有人仅仅从 cons 单元构建数据结构。语言确实有任意两个的组合first和next命名ffirst,fnext,nnext,和nfirst,这是很早就加入上我想是因为它假定我们想要的东西像CADR,但我从来没有看到他们在现实生活中使用。相反,解构被经常使用。
在极少数情况下,您需要深入了解由嵌套序列构建的结构,解构通常仍会生成可读代码,但手写代码也不会造成太大负担。这也是对您的一个很好的提示,也许您应该对事物进行更多抽象,而不是直接使用如此多的原始组合器层。