【问题标题】:What does "my other car is a cdr" mean?“我的另一辆车是 cdr”是什么意思?
【发布时间】:2010-12-24 07:14:22
【问题描述】:

任何精通 lisp 的人可以向我解释这个笑话吗? 我已经阅读了一些函数式编程语言,并且知道 CAR/CDR 表示地址/递减寄存器的内容,但我仍然不太了解其中的幽默。

【问题讨论】:

  • 开始“策划”一下,然后你就会明白了。哈哈哈。这比上面写着“这个程序员停止所有垃圾收集”的保险杠贴纸要好。
  • news.ycombinator.com/item?id=14416846 链接到这个问题大约半小时后,它被搁置了。这是一个8岁的问题。令人讨厌的是,我无法反对暂停状态,但我不喜欢 现在 暂停它的氛围。
  • @i336_ 根据meta discussion,它已关闭以防止新答案堵塞审核队列。
  • 没有其他的持有原因吗?基于意见是……错误的
  • 不应该改为保护吗?

标签: lisp cons cdr


【解决方案1】:

//来自Scheme
Scheme 的数据结构很少,其中一个是元组:'(first . second)。在这种情况下,car 是第一个元素,cdr 是第二个元素。可以扩展此构造以创建列表、树和其他结构。
这个笑话不太好笑。

【讨论】:

  • 元组不是 '(first . second) 吗?
  • @Ken - 再说一次,我不知道 lisp,但方案没有这么复杂的语法。甚至列表也是由对组成的。
  • 确实,更准确的说法是元组是(first . second)。列表'(first second) 由两个元组组成,如下所示:(cons first (cons second null))
  • Kobi:我知道 Lisp,但我不确定您所说的“复杂语法”是什么意思。虚线语法是您在 Lisp 中编写对的方式,包括 Scheme:gnu.org/software/mit-scheme/documentation/mit-scheme-ref/…。 (first second) 的 cdr 是 (second),而不是 second。
  • 那么,现在我们因为被纠正而被否决了?那好吧。太阳会发光。
【解决方案2】:

在 Lisp 中,链表元素称为 CONS。它是一种具有两个元素的数据结构,由于历史原因,称为 CAR 和 CDR。 (一些 Common Lisp 程序员更喜欢使用 FIRST 和 REST 函数来引用它们,而其他人则喜欢 CAR 和 CDR,因为它们与 (CADR x) ≡ (CAR (CDR x) 等预先组合的版本非常吻合)。

这个笑话是对你有时在破旧汽车上看到的保险杠贴纸的模仿,上面写着“我的另一辆车是保时捷/宝马/等等。”

对于这个笑话,我的response 一直是“我的其他 CAR 是 CADR。CDR 根本不是 CAR。”

【讨论】:

  • 非常好,但不是真的。不是在(rplacd a (car a)) 之后,它显然不会。 :) Common LISP 不是 Haskell。但感谢您的解释。 +1。
  • 我不想解释我的玩笑,但是……关键是 CDR 操作 不是 CAR 操作;这与这些值是否通过 RPLACD 或其他方式等效是一个单独的问题。
  • 而且,CDR 听起来有点像跑车的名称,与 TVR 或 GT-R 相呼应,所以人们可以阅读文本,甚至没有意识到更深层次的 LISP-y 含义。跨度>
  • 如果有人想知道,CAR代表寄存器号的地址部分的内容,CDR代表寄存器号的减量部分的内容。谢谢,Wikipedia
  • “我的另一个carfirst”怎么样。 :)
【解决方案3】:

是的,绝对是个极客笑话。

这些名称来自 IBM 704,但这不是开玩笑。

这个笑话是(糟糕的)双关语“我的另一辆车是___”。但笑话是关于递归的。

当您在 lisp 中循环/操作/选择/调用/更多时,您使用 car(列表中的第一个元素)和 cdr(列表的其余部分)的组合来处理函数。

所以你有一辆汽车,但你的另一辆车是你的 cdr,因为你总是可以从 cdr 得到汽车,因为 cdr 总是(递归)更多元素。得到它?还笑吗?

您可能必须学习 lisp 才能真正轻笑,或者不笑。当然,到那时,您可能会发现自己无缘无故地轻笑,因为:

Lisp 让你发疯。

【讨论】:

  • 最后一口气,另一场比赛开始了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 2017-06-11
  • 2018-03-05
相关资源
最近更新 更多