Как уже говорилось много раз - с Проверьте этот список все селектор CSS. div ~ p
выбраны все элементы , которым предшествует элемент
Из двух слов car и cdr , car - первое, что я услышал ].
Полной ссылкой на книгу выше является вЂCommon Lisp Нежное Введение в Символьный Computation’ David S. Touretzky. It’s, доступный (ноябрь 2019) от: https://www.cs.cmu.edu/~dst/LispBook/book.pdf
Мое (очень последнее) предложение к мнемонике для CAR & CDR:
Думают о первом элементе списка, полученного на машине, как представлено A, но в одном из шрифтов, который похож на зеркальное отображение D. Этот символ указывает на (т.е. кривая поверхность символа указывает на), вЂC’omentmence списка. Затем думайте об остальной части списка, полученного CDR, как представлено D. D указывает на вЂR’est или остаток позади списка.
из-за ограничений на шрифты здесь я буду использовать †< |’ для обозначения в шрифте, который является отражением вЂD’ о вертикальной оси. Для симметрии я обозначу символ D †|> ’.
Отношение R = C^-1. Затем CARCDR=CAC^-1CDR=CADR и т.д. представлены C< |RC |> R = C< ||> R и т.д.
Это действительно отстой, но поскольку никто больше ничего не предлагал ...
для меня машина - это то, что ездит, поэтому она первая. cdr - камбуз; оно приходит после.
Видите, я сказал вам, что это хромой.
У меня нет мнемоники для автомобилей и компакт-дисков. Я имею в виду, что их всего два, и если вы вообще используете Lisp, мне кажется, вы бы просто знали. (Черт, я даже не использую Lisp и могу вспомнить.)
Помимо удобной композиции, car и cdr имеют следующие преимущества перед first и rest: (1) короче, (2) одинаковой длины, (3) они появились раньше.
У меня нет мнемоник для запоминания автомобиля / cdr, хотя они расположены в алфавитном порядке ( a
идет перед d
, таким образом, автомобиль
является первым
).
Почему они прилипли (сначала к ,
и ] отдых
)? Большая часть, вероятно, просто импульс, но другая - это то, что вы уже написали. Вы можете легко написать для них композиционные функции:
(caadar ...) -> (car (car (cdr (car ...))))
Они обозначают «содержимое регистра адреса» и «содержимое регистра декремента», термины, полученные из архитектуры машины IBM 704. Не то чтобы это вам сильно помогло!
«автомобиль» и «cdr», по крайней мере, для меня, это вещи, которые вы просто изучаете, как звуки для слов «левый» и «правый».
«первый» и "остальные" являются мнемоническими только в том случае, если деконструируемый объект является списком. Если это действительно минусы (то есть пара точек), они не помогают.
Они застряли, потому что не было ничего другого, почти пятьдесят лет назад, когда LISP был впервые разработан. Все статьи, все книги, весь код использовали CAR и CDR, и все к ним привыкли.
На самом деле я редко вижу автомобиль
и cdr
, гораздо чаще я вижу сначала
и отдых
в коде. Поэтому я не могу согласиться с тем, что названные не набирают обороты.
Если вас не волнует идиоматика, сначала используйте и отдыхайте. У car и cdr есть то преимущество, что их можно объединять в комбинации, такие как caddr cddr и так далее, если вы сочтете это полезным.
В противном случае автомобиль будет первым из двух по алфавиту.