Domanda

Qualcuno può ben versato in Lisp spiegare questo scherzo per me? Ho fatto qualche lettura sui linguaggi di programmazione funzionali e so che CAR / CDR significa Contenuti di Indirizzo / Decremento Register, ma io ancora non capiscono veramente l'umorismo.

È stato utile?

Soluzione

In Lisp, un elemento di lista collegata è chiamato CONS. Si tratta di una struttura di dati con due elementi, denominato CAR e il CDR per ragioni storiche. (Alcuni programmatori Common Lisp preferiscono riferirsi a loro utilizzando il primo e REST funzioni, mentre altri come car e cdr perché si adattano bene con le versioni precomposte quali (CADR x) ≡ (CAR (CDR x)).

Lo scherzo è una parodia dei adesivi a volte si vede su vecchie auto beat-up dicendo: "La mia altra macchina è una Porsche / BMW / etc".

per questa battuta è sempre stata "My altra macchina è un CADR. CDR non è una macchina a tutti ".

Altri suggerimenti

Sì, sicuramente uno scherzo geek.

I nomi provengono dalla IBM 704, ma non è la battuta.

Lo scherzo è (cattivo) gioco di parole su "la mia altra macchina è un ___". Ma l'in-scherzo è di circa ricorsione.

Quando si esegue un ciclo / manipolare / select / Invoke / più in Lisp si utilizza una combinazione di auto (il primo elemento della lista) e cdr (il resto della lista) di destreggiarsi tra le funzioni.

Quindi hai una macchina, ma l'altra macchina è il vostro cdr, perché si può sempre ottenere una macchina da un cdr dal momento che il CDR è sempre (in ricorsione) più elementi. Prendilo? Ridi ancora?

Probabilmente dovrete imparare Lisp a ridacchiare in realtà un po ', oppure no. Naturalmente, a quel punto, probabilmente vi ritroverete ridacchiando in modo casuale per nessun motivo apparente, perché:

Lisp fa Loopy.

// Venendo da Scheme
Schema 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 liste, alberi, e altre strutture.
La battuta non è molto divertente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top