“我的另一辆车是司机”是什么意思?

谁能够熟练地解释这个笑话给我? 我已经做了一些关于函数式编程语言的阅读,并且知道CAR / CDR意味着地址/减量寄存器的内容,但是我还是不太懂幽默。

在Lisp中,链表元素被称为CON​​S。 这是一个具有两个元素的数据结构,由于历史原因,称为CAR和CDR。 (一些Common Lisp程序员倾向于使用FIRST和REST函数来引用它们,而另一些像CAR和CDR,因为它们适合于诸如(CADR x)≡(CAR(CDR x))的预分解版本。

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

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

是的,绝对是一个怪胎的笑话。

名字来自IBM 704,但这不是玩笑。

这个玩笑是(坏)双关语“我的另一辆车是___”。 但是这个笑话是关于recursion的。

在lisp中循环/操作/select/调用/ more时,使用car(列表中的第一个元素)和cdr(列表的其余部分)来组合函数。

所以你有一辆车,但是你的另一辆车是你的CDR,因为你可以随时从CDR获得一辆车,因为CDR总是(在recursion)更多的元素。 得到它? 笑呢?

你可能不得不学习lisp实际上咯咯笑了一下,或者不。 当然,到那时候,你可能会发现自己没有任何明显的原因,

Lisp让你变得糟糕。

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

Interesting Posts