Может ли кто-нибудь, хорошо разбирающийся в lisp, объяснить мне эту шутку? Я читал на языках функционального программирования и знаю, что CAR/CDR означает содержание регистра адресов/декретов, но я до сих пор не понимаю юмора.Что означает «мой другой автомобиль - это cdr»?
ответ
В Lisp элемент связанного списка называется CONS. Это структура данных с двумя элементами, называемая CAR и CDR по историческим причинам. (Некоторые программисты Common Lisp предпочитают ссылаться на них с помощью функций FIRST и REST, в то время как другие, такие как CAR и CDR, потому что они хорошо согласуются с предварительно подобранными версиями, такими как (CADR x) ≡ (CARR x)).
Шутка - это пародия на наклейки с бампером, которые вы иногда видите на избитых старых машинах: «Мой другой автомобиль - это Porsche/BMW и т. Д.»
Мой response этой шутки всегда был «Мой другой автомобиль - это CADR. CDR не CAR на всех.»
+1 за обычный ответ. :) – Kobi
очень приятно, но не так. Не после '(rplacd a (car a))' это явно не будет. :) Common LISP - это не Haskell. Но спасибо за объяснение. +1. –
@WillNess Common Lisp также не является общим LISP. –
// Из схемы
Схема имеет очень мало структур данных, один из которых является кортежем: '(first . second)
. В этом случае car
является первым элементом, а cdr
- вторым. Эта конструкция может быть расширена для создания списков, деревьев и других структур.
Шутка не очень забавная.
Да, определенно Компьютерщик шутка.
имена приходят от IBM 704, но это не шутка.
Шутка (плохая) каламбура «мой другой автомобиль - это ___». Но в шутке речь идет о рекурсии.
Когда вы выполняете цикл/манипулируете/выбираете/вызываете/больше в lisp, вы используете комбинацию автомобиля (первый элемент в списке) и cdr (остальная часть списка), чтобы жонглировать функциями.
Итак, у вас есть машина, но ваш другой автомобиль - это ваш cdr, потому что вы всегда можете получить автомобиль из cdr, так как cdr всегда (в рекурсии) больше элементов. Возьми? Еще смеяться?
Вам, вероятно, придется изучить lisp, чтобы на самом деле посмеиваться, или нет. Конечно, к тому времени вы, вероятно, посмеиваетесь беспорядочно без видимых причин, потому что:
Lisp делает вас зацикленным.
И с вашим последним вздохом началась другая игра. – zxq9
- 1. Автомобиль и Cdr в схеме
- 2. Что означает это предложение?
- 3. что это означает, что синтаксис директивы означает?
- 4. Что означает это сообщение?
- 5. Что означает это утверждение?
- 6. Что означает это выражение "!!"
- 7. Что это означает mdx
- 8. Что означает это NumberFormatException?
- 9. что это 'content_type' означает
- 10. Что означает это ЗДЕСЬ?
- 11. Что означает это предупреждение?
- 12. Что это означает()?
- 13. Что означает «это»?
- 14. Что означает это выражение?
- 15. Что означает это исключение?
- 16. Что означает это утверждение?
- 17. Что означает «это»?
- 18. Что означает это исключение?
- 19. Что означает это `_time_independent_equals`?
- 20. Что означает это определение?
- 21. Что означает это сравнение?
- 22. Что означает это условие?
- 23. Что такое "CDR"?
- 24. Что означает это регулярное выражение [^}] *
- 25. Что это означает? (Интермедиат (*) [10])
- 26. Что такое Database_Default, это означает?
- 27. Что означает «это [0]» означает в C#?
- 28. Что это означает: «------------------------» означает в файле bat
- 29. PHP - Что это означает, если утверждение означает?
- 30. Термин «завиток» означает, что это означает
начать немного «обдумывать», а затем вы поймете. хахаха. это лучше, чем наклейка с бампером, в которой говорится, что «этот программист останавливается во всех сборках мусора». – gonzobrains
Примерно через полчаса после того, как этот вопрос был связан с https://news.ycombinator.com/item?id=14416846, он был приостановлен. Это вопрос 8 лет. Раздражающе, я не могу возражать против статуса удержания, но мне не нравится, что теперь он держит его на месте *. –
@ i336_ за [мета обсуждение] (https://meta.stackoverflow.com/questions/250060/should-i-flag-old-questions-that-ought-to-be-closed), он закрыт для предотвращения новые ответы от блокировки очереди просмотра. – Andrew