簡體   English   中英

優先選擇 rest 而不是 car 和 cdr 的 lisp 如何處理 cdaddr 之類的組合?

[英]How do lisps that prefer first and rest to car and cdr approach combinations like cdaddr?

Lisp 社區中最大的分歧之一是我們是否應該擁有carcdrfirstrest 傳統carcdr的好處之一是我們可以將它們結合起來產生像cdaddr這樣的發音功能。 不使用carcdr的 Lisps,例如 Clojure,通常如何與firstrest形成這樣的組合? 有沒有共識?

Clojure,無論如何,根本不需要 caddaadr 和朋友,因為沒有人僅僅從 cons 單元構建數據結構。 該語言確實有firstnext中任意兩個的組合,命名為ffirstfnextnnextnfirst ,我想這些是很早就添加的,因為假設我們想要像 cadr 這樣的東西,但我從來沒有看到它們用於現實生活。 相反,經常使用解構。

在極少數情況下,您需要深入了解由嵌套序列構建的結構,解構通常仍會產生可讀的代碼,但手寫出來也不是什么大負擔。 這也是對您的一個很好的暗示,也許您應該更多地抽象事物,而不是直接使用如此多的原始組合器層。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM