История изменений
Исправление alysnix, (текущая версия) :
В Lisp прежде всего НЕ используются дву-связные списки. А именно в них есть проблема.
проблема у вас не в двусвязных списках, а в циклических ссылках, в том числе и косвенных.
- возьмите односвязный список и пусть у него последний элемент указывает на первый. и получите циклическую ссылку.
с лиспе «cons» это такая форма рекурсивного описания списка. список в лиспе односвязный, но ничто не мешает там делать петли по примеру 1.
//"cons" это прокси элемент гетерогенного списка, вида (язык Це)
struct{
Object *_ref; //указатель на обьект на который ссылается этот прокси
Object *_next; //следующий прокси (который тоже обьект)
}
то есть список рассматривается как рекурсивная сущность this - текущий обьект, next - следующие обьекты. или - <голова списка>, <хвост списка>. в физическом смысле это односвязный список гетерогенных обьектов, который сами могут быть, и чаще всего являются списками.
зы… и хватит уже давать собственные определения массивам(array) и спискам (lists), у них вполне точное определение и его не мы выдумали.
Исходная версия alysnix, :
В Lisp прежде всего НЕ используются дву-связные списки. А именно в них есть проблема.
проблема у вас не в двусвязных списках, а в циклических ссылках, в том числе и косвенных.
- возьмите односвязный список и пусть у него последний элемент указывает на первый. и получите циклическую ссылку.
с лиспе «cons» это такая форма рекурсивного описания списка. список в лиспе односвязный, но ничто не мешает там делать петли по примеру 1.
"cons" это прокси элемент гетерогенного списка, вида (язык Це)
struct{
Object *_ref; //указатель на обьект на который ссылается этот прокси
Object *_next; //следующий прокси (который тоже обьект)
}
то есть список рассматривается как рекурсивная сущность this - текущий обьект, next - следующие обьекты. или - <голова списка>, <хвост списка>. в физическом смысле это односвязный список гетерогенных обьектов, который сами могут быть, и чаще всего являются списками.
зы… и хватит уже давать собственные определения массивам(array) и спискам (lists), у них вполне точное определение и его не мы выдумали.