gpt4 book ai didi

lisp - 为什么 elt 不像 car、cdr、first、rest 那样常见?

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:42 25 4
gpt4 key购买 nike

我在书籍和文章中读到的例子中经常看到这一点:

(caddr *something*)

或者 c***r 命令的许多变体。

这对我来说似乎有点荒谬,当你可以更清楚地使用 elt 来解决问题时:

(elt *something* 2)

但我没有看到这种技术被广泛使用。

是否有一个我不明白的约定更喜欢 c***r 函数?

最佳答案

elt 是一个适用于列表和数组的通用函数。当你想编写一个对两种数据类型以相同方式工作的通用算法时,就需要它。但是这样的算法并不多,因为这通常会对列表不利。

一般惯例似乎是:

  • 如果您编写一个通用函数来处理列表,您将使用 c(a|d)+r 函数(这种情况非常罕见,因为大多数时候一个库函数)。这通常发生在 Stackoverflow 问题代码/类作业代码等 :)

  • 经验丰富的 Lisp 程序员会尽可能使用 firstsecond 等。最佳实践中有时也会提到这一点。最佳实践通常还会提到应该创建适当的数据结构,而不是处理重要的列表。

  • nthelt 确实很少见,因为很难为它们想出好的用例。我可以想象两者如何在宏中使用,其中性能并不重要,但需要某种通用性,例如,如果有人想以相同的方式处理字符串和字符列表。也许在一些原型(prototype)代码中,程序员还不确定他们将使用什么数据类型,但仅此而已。

关于lisp - 为什么 elt 不像 car、cdr、first、rest 那样常见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19968900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com