Честно говоря, никогда у меня не было понимания, почему LISP это язык для искуственного интеллекта (по мнению 70х), и какое отношение всякие такие хитрые машинные регистры CAR и CDR имеют к языку. Не было до того момента, как я сел и поизучал реализацию интерпретатора uLisp для микроконтроллеров — там-то и случился insight! И вам рекомендую http://www.ulisp.com/show?1BLW



Кратко — оказалось, что вообще все в реализации на нижнем уровне это натурально односвязные списки из ячеек из двух машинных слов (левое CAR, правое CDR) плюс немного хитрой работы с адресной арифметикой и масками. И тупейший GC, который работает тоже со списком таких ячеек, да и все. На них реализованы и строки (крайне неэффективно, кстати), и числа, и переменные. Неэффективно, зато как высокоуровнево.