powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Lisp/Clojure etc: вопрос по эффективности неизменяемых списков
3 сообщений из 3, страница 1 из 1
Lisp/Clojure etc: вопрос по эффективности неизменяемых списков
    #38479516
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.

Читал про lisp и clojure, там сказано, в частности, что списки - неизменяемые.
Т.е. если мы хотим добавить новый элемент в какой то определённый список list1, то на выходе из ф-ции будет уже новый list2.

Я пока не копал вглубь насчет механизмов, как это сделано, но возник вопрос, как это всё же происходит? Происходит ли всякий раз копирование в памяти целиком списка? Либо новый список - это просто реорганизация ссылок на старый список+ ссылка на новый элемент?
...
Рейтинг: 0 / 0
Lisp/Clojure etc: вопрос по эффективности неизменяемых списков
    #38479718
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirage,

Список состоит из ячеек. Чтобы изменить список, не нужно менять все ячейки, достаточно изменить измененные, и пометить неизменные таким образом, что бы было видно, что они используются двумя копиями списка, старой и новой, чтобы потом можно было бы скопировать их при изменении в одном из списков.

Примерно так видимо делается в clojure.

В common.lisp cons ы тупо копируются, в основном, на сколько я знаю.
...
Рейтинг: 0 / 0
Lisp/Clojure etc: вопрос по эффективности неизменяемых списков
    #38479840
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВ common.lisp cons ы тупо копируются, в основном, на сколько я знаю.

Да, дабы избежать неприятных ситуаций, поскольку списки в CL мутабельны.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Lisp/Clojure etc: вопрос по эффективности неизменяемых списков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]