История изменений
Исправление Nervous, (текущая версия) :
Кому эти операции нужные? Мне не нужные. Мне нужно (мутабельное) добавление в конец, например.
Одно другому не мешает. Есть в лиспах и списки, и массивы/векторы, и всё, что душа пожелает. Но для кода лучше иметь отдельную структуру, потому что код и данные интерпретируются по-разному — как правило, элементы списка с кодом вычисляются (eval) и значение первого элемента применяется к остальным, как к аргументам (apply). С данными этого не происходит, для них просто eval.
И эта структура для кода должна позволять им эффективно манипулировать — например, специальные формы и макросы могут добавлять её элементы, переставлять местами и удалять, а также решать, делать ли им eval.
А так да, без разницы, список или не список. Хоть объекты на замыканиях из SICP пусть будут.
Исправление Nervous, :
Кому эти операции нужные? Мне не нужные. Мне нужно (мутабельное) добавление в конец, например.
Одно другому не мешает. Есть в лиспах и списки, и массивы/векторы, и всё, что душа пожелает. Но для кода лучше иметь отдельную структуру, потому что код и данные интерпретируются по-разному — как правило, элементы списка с кодом вычисляются (eval) и значение первого элемента применяется к остальным, как к аргументам (apply). С данными этого не происходит, для них просто eval.
И эта структура для кода должна позволять им эффективно манипулировать — например, специальные формы и макросы могут добавлять её элементы, переставлять местами и удалять, а также решать, делать ли им eval.
Исправление Nervous, :
Кому эти операции нужные? Мне не нужные. Мне нужно (мутабельное) добавление в конец, например.
Одно другому не мешает. Есть в лиспах и списки, и массивы/векторы, и всё, что душа пожелает. Но для кода лучше иметь отдельную структуру, потому что код и данные интерпретируются по-разному — как правило, элементы списка с кодом вычисляются (eval) и значение первого элемента применяется к остальным, как к аргументам (apply). С данными этого не происходит, для них просто eval.
И эта структура для кода должна позволять им эффективно манипулировать — например, специальные формы и макросы могут добавлять её элементы, переставлять местами и удалять.
Исходная версия Nervous, :
Кому эти операции нужные? Мне не нужные. Мне нужно (мутабельное) добавление в конец, например.
Одно другому не мешает. Есть в лиспах и списки, и массивы/векторы, и всё, что душа пожелает. Но для кода лучше иметь отдельную структуру, потому что код и данные интерпретируются по-разному — как правило, элементы списка с кодом вычисляются (eval) и значение первого элемента применяется к остальным, как к аргументам (apply). С данными этого не происходит, для них просто eval.