My other car

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

My other car is a cdr — вариант старого мема (популярной темы для наклеек на бампер, «My other car is a bus» и т. п.), пришедший из православно-буддистского языка программирования LISP, который является путем к просветлению, и английского языка.

В LISP функции получения «головы» (первого элемента списка) и «хвоста» (всех элементов списка кроме первого) называются соответственно car и cdr. Забрав из списка первый элемент, можно работать с ним, а затем повторить то же самое действие для всего остального списка.

Это про хвостовую обычную рекурсию, да.

На самом деле car, cdr и cons предназначены просто для создания связанной пары значений (cons) и извлечения из созданной пары первого значения (car) и второго значения (cdr). Список же просто один из способов организации данных в виде цепочки указывающих друг на друга пар. Из этого базового consтруктора, собственно, и организуется всё многообразие структур данных в lisp-е — списки, деревья, леса…

Ну и Erlang это умеет Там и циклов-то нет.

Вариации[править]

Мини-комбо

my other car is

(reduce #'(lambda (x y) (if (atom x) (list y) (cons x y))) a)

Употребляется во множестве различных вариаций, например, «my other joke is slightly amusing», что в наших интернетах было бы подобно деанонимизации в постере Евгения Вагановича Петросяна.

Также может употребляться контекстуально, например, «my other cat is a cdt», вклиненное в беседу о домашних котах.

См. также[править]

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++Scala
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автомат
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур Пейперт
Прочее++i + ++iDeadline%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодач