Qualcuno esperto in fonia può spiegare questo scherzo a me? Ho letto alcuni linguaggi di programmazione funzionale e so che CAR/CDR significa Contenuti del registro indirizzi/decrementi, ma ancora non capisco l'umorismo.Che cosa significa "l'altra mia auto è un cdr"?
risposta
In Lisp, un elemento dell'elenco collegato è denominato CONS. Si tratta di una struttura dati con due elementi, denominati CAR e CDR per ragioni storiche. (Alcuni programmatori Common Lisp preferiscono riferirsi a loro usando le funzioni FIRST e REST, mentre altri come CAR e CDR perché si adattano bene alle versioni precomposte come (CADR x) ≡ (CAR (CDR x)).
Lo scherzo è una parodia degli adesivi paraurti che a volte vedi su vecchie auto battute dicendo "La mia altra auto è una Porsche/BMW/ecc."
Il mio response a questo scherzo è sempre stato "La mia altra macchina è un CADR. CDR non è una macchina a tutti."
+1 per avere una risposta abituale. :) – Kobi
molto bello, ma non è vero. Non dopo '(rplacd a (auto a))' manifestamente no. :) LISP comune non è Haskell. Ma grazie per la spiegazione. +1. –
@WillNess Common Lisp non è un LISP comune. –
// Venendo da Schema
programma ha pochissime strutture di dati, uno di loro è una tupla: '(first . second)
. In questo caso, car
è il primo elemento e cdr
è il secondo. Questo costrutto può essere esteso per creare elenchi, alberi e altre strutture.
Lo scherzo non è molto divertente.
Sì, sicuramente uno scherzo geek.
I nomi provengono dalla IBM 704, ma non è lo scherzo.
Lo scherzo è (cattivo) gioco di parole su "l'altra mia auto è un ___". Ma l'in-joke parla di ricorsione.
Quando si esegue il loop/manipola/seleziona/invoca/più in lisp, si utilizza una combinazione di auto (il primo elemento nell'elenco) e cdr (il resto dell'elenco) per gestire le funzioni.
Quindi hai una macchina, ma la tua altra macchina è il tuo cdr perché puoi sempre prendere una macchina da un cdr dato che il cdr è sempre (in ricorsione) più elementi. Prendilo? Ridi ancora?
Probabilmente dovrai imparare la chiarezza per ridacchiare o meno. Naturalmente, a quel punto, probabilmente ti ritroverai a ridacchiare a caso senza motivo apparente perché:
Lisp ti rende ansioso.
E con il tuo ultimo respiro, è iniziata un'altra partita. – zxq9
inizia a "intrigare" un po 'e poi capirai. Hahaha. è meglio di un adesivo per il paraurti che dice "questo programmatore si ferma a tutte le raccolte di spazzatura". – gonzobrains
Circa mezz'ora dopo che questa domanda era collegata a https://news.ycombinator.com/item?id=14416846 è stata messa in attesa. È una domanda di 8 anni. Fastidiosamente, non posso discutere contro lo stato di attesa, ma non mi piace l'atmosfera di metterlo in attesa * ora *. –
@ i336_ per la [meta discussione] (https://meta.stackoverflow.com/questions/250060/should-i-flag-old-questions-that-ought-to-be-closed), è chiuso per impedire nuove risposte dall'intasamento della coda di revisione. – Andrew