"Diğer arabam bir cdr" ne anlama geliyor?


89

Bu şakayı bana lisp konusunda iyi bilen biri açıklayabilir mi? İşlevsel programlama dilleri hakkında biraz okuma yaptım ve CAR / CDR'nin Adres / Azaltma Kaydı İçeriği anlamına geldiğini biliyorum ama yine de mizahı gerçekten anlamıyorum.


10
Biraz "etrafında plan yapmaya" başlayın ve sonra anlayacaksınız. hahaha. "bu programcı tüm çöp toplamada duruyor" yazan bir tampon çıkartmasından daha iyidir.
gonzobrains

8
News.ycombinator.com/item?id=14416846 dan bu soruya bağlantı kurulduktan yaklaşık yarım saat sonra beklemeye alındı. Bu 8 yıllık bir soru. Sinir bozucu bir şekilde, beklemeye alma durumuna karşı çıkamam ama şimdi beklemeye almanın verdiği his hoşuma gitmiyor .
i336_

Meta tartışma başına @ i336_ , yeni yanıtların inceleme kuyruğunu tıkamasını önlemek için kapatılır.
Andrew

2
Başka bekletme sebebi yok mu? Fikir temelli ... yanlış
Entendu

6
Bunun yerine Korunması gerekmez mi?
Federico klez Culloca

Yanıtlar:


134

Lisp'te, bağlantılı bir liste öğesine CONS denir. Tarihsel nedenlerden dolayı CAR ve CDR olarak adlandırılan iki unsurlu bir veri yapısıdır. (Bazı Common Lisp programcıları, İLK ve DİNLENME işlevlerini kullanarak bunlara başvurmayı tercih ederken, diğerleri (CADR x) ≡ (CAR (CDR x)) gibi önceden oluşturulmuş sürümlere iyi uydukları için CAR ve CDR'yi severler.

Şaka, bazen dövülmüş eski arabalarda gördüğünüz "Benim diğer arabam bir Porsche / BMW / vb." Diyen tampon etiketlerinin bir parodisidir.

Benim tepkisi bu şaka için her zaman "Benim diğer OTOMOBİL bir CADR olduğunu. CDR hiç bir CAR değildir." Olmuştur


1
çok güzel, ama doğru değil. Ondan sonra (rplacd a (car a))açıkça olmayacak. :) Yaygın LISP, Haskell değildir. Ama açıklama için teşekkürler. +1.
Will Ness

2
Şakamı açıklamak istemedim ama ... önemli olan şu ki, CDR operasyonu bir CAR operasyonu değil ; bu, değerlerin RPLACD yoluyla veya her neyse eşdeğer olup olmadığından ayrı bir konudur.
Peter S.Housel

1
Ayrıca, CDR bir spor arabanın adı gibi ses çıkarır, TVR veya GT-R'yi yansıtır, böylece kişi metni okuyabilir ve daha derin, LISP-y anlamını bile fark edemez.
grkvlt

4
Birinin bilmek istemesi durumunda, CAR , Tescil numarasının Adres İçeriği kısmını ve CDR , Tescil numarasının Azaltmanın İçeriği kısmını ifade eder . Teşekkürler Wikipedia !
kojiro

1
Nasıl "Benim diğer ilgili carDİR first". :)
Kaz

34

Evet, kesinlikle bir inek şakası.

İsimler IBM 704'ten geliyor ama şaka bu değil.

Şaka, "diğer arabam bir ___" üzerine (kötü) kelime oyunu. Ama şaka özyineleme hakkındadır.

Lisp'de döngü / manipüle / seç / çağır / daha çok yaptığınızda, işlevler arasında hokkabazlık yapmak için car (listedeki ilk öğe) ve cdr (listenin geri kalanı) kombinasyonunu kullanırsınız.

Yani bir arabanız var, ancak diğer arabanız sizin cdr'niz çünkü cdr her zaman (özyinelemede) daha fazla öğe olduğundan her zaman bir cdr'den bir araba alabilirsiniz. Anla? Güldün mü?

Aslında biraz kıkırdamak ya da kıkırdatmak için muhtemelen lisp öğrenmeniz gerekecek. Elbette, o zamana kadar, muhtemelen kendinizi hiçbir neden olmadan rastgele kıkırdarken bulacaksınız, çünkü:

Lisp sizi huysuzlaştırır.


2
Ve son nefesinizle başka bir oyun başladı.
zxq9

14

// Şema geliyor
Planı bunlardan biri başlık olur, çok az veri yapılarını vardır: '(first . second). Bu durumda, carbirinci unsurdur ve cdrikinci unsurdur . Bu yapı, listeler, ağaçlar ve diğer yapıları oluşturmak için genişletilebilir.
Şaka pek komik değil.


1
Tuple '(birinci. Saniye) olmaz mıydı?
Ken

1
@Ken - yine, lisp bilmiyorum ama şemanın bu kadar karmaşık bir sözdizimi yok. Listeler bile çiftlerden oluşur.
Kobi

3
Aslında, tuple olduğunu söylemek daha doğru olacaktır (first . second). Liste '(first second)şu şekilde iki (cons first (cons second null))
diziden oluşur

1
Kobi: Lisp'i biliyorum ve "karmaşık sözdizimi" ile ne demek istediğinizden emin değilim. Şema dahil olmak üzere Lisp'te çiftleri nasıl yazacağınız noktalı sözdizimidir: gnu.org/software/mit-scheme/documentation/mit-scheme-ref/… . (Birinci saniye) 'nin cdr'si (ikinci), ikinci değil.
Ken

3
Yani, şimdi düzeltildiğimiz için olumsuz oy mu alıyoruz? Oh iyi. Güneş doğacak.
Kobi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.