Pergunta

Pode alguém bem versado em lisp explicar essa piada para mim? Eu tenho feito algumas leituras sobre linguagens de programação funcional e saber que o carro / CDR Conteúdo médios de Endereço / Decrement Register mas ainda não realmente compreender o humor.

Foi útil?

Solução

Em Lisp, um elemento de lista ligada é chamado de CONS. É uma estrutura de dados com dois elementos, chamado o carro eo CDR por razões históricas. (Alguns programadores Lisp Comum preferem se referir a eles usando as funções de primeira e descanso, enquanto outros, como CAR e CDR porque eles se encaixam bem com as versões pré-compostas, tais como (CADR x) = (CAR (CDR x)).

A piada é uma paródia dos adesivos para carros às vezes você vê em carros antigos batida-up dizendo "Meu outro carro é um Porsche / BMW / etc."

resposta para esta piada sempre foi "My outro carro é um CADR. CDR não é um carro em tudo ".

Outras dicas

Sim, definitivamente uma piada geek.

Os nomes vêm do IBM 704, mas isso não é a piada.

A piada é (mau) trocadilho com "meu outro carro é um ___." Mas a piada é sobre a recursividade.

Quando você laço / manipular / select / invoke / mais em lisp você usa uma combinação de carro (o primeiro elemento da lista) e CDR (o resto da lista) para funções de fazer malabarismos.

Então você tem um carro, mas seu outro carro é a sua cdr, porque você sempre pode obter um carro de um cdr desde o cdr é sempre (em recursão) mais elementos. Pegue? Laugh ainda?

Você provavelmente vai ter que aprender lisp para realmente rir um pouco, ou não. É claro que, até então, você provavelmente vai encontrar-se rindo aleatoriamente, sem motivo aparente, porque:

Lisp faz você Loopy.

// Vindo do Esquema
Esquema tem muito poucas estruturas de dados, um deles é uma tupla: '(first . second). Neste caso, car é o primeiro elemento, e cdr é o segundo. Esta construção pode ser estendido para criar listas, árvores e outras estruturas.
A piada não é muito engraçado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top