LINUX.ORG.RU

Haskell двусвязный список.


0

0

Интересует возможность создания и работы с двусвязными списками в Хаскеле. Описать соотв. тип я могу. Переделать обычный список в двусвязный тоже.

Но как добавить элемент хотя бы в голову списка, не проходясь по всему списку?

Или и вовсе такой тип данных не применим (плохо применим) в Хаскеле и стоит искать другие пути решения задачи?

★★★★★

Лучше всего посмотреть книжку "Purely Functional Data Structures", где описываются методы работы со сложными структурами данных в чистых ФЯ

ott ★★★★★
()
Ответ на: комментарий от imp

Да меня не столько готовое решение интересует, мне идейные возможности Хаскеля интересны.

Waterlaz ★★★★★
() автор топика
Ответ на: комментарий от cathode

Не совсем. Как сделать двусвяхный список я знаю. Но нет возможности добавить или убрать элемент за O(1), как это можно сделать с односвязным списком.

Waterlaz ★★★★★
() автор топика
Ответ на: комментарий от Waterlaz

O(1) - это смотря куда добавлять, если в хвост то будет O(n). Т.к. в 2-связном списке лбой конец списка - это хвост, то O(1) в лоб не получится, увы. Если мне не изменяет память, то обычно для таких целей поддерживают два списка - один просто пара (cons), с элементами указывающими на оба конца другого списка. Тогда до любой стороны можно добраться за O(1), только из-за того, что деструктивного присваивания нет, чтобы сконсить чтонибудь, придется изголятся с парой указателей (ее надо будет пересоздавать каждый раз).

cathode
()
Ответ на: комментарий от cathode

> Тогда до любой стороны можно добраться за O(1), только из-за того, что деструктивного присваивания нет, чтобы сконсить чтонибудь, придется изголятся с парой указателей (ее надо будет пересоздавать каждый раз).

Да, теперь я начинаю постигать, что Хаскель - это действительно Ъ )))))

den73 ★★★★★
()
Ответ на: комментарий от den73

> Да, теперь я начинаю постигать, что Хаскель - это действительно Ъ )))))

Я тоже :-)

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от cathode

В наши страшные времена секты имеют такую особенность: они недолговечны.

Завладевшая миром сила (условно её можно назвать диаволом) ведёт человека своим путём, переключая его из одной религии на другую. При каждом переключении происходит одна-две подмены в сознании, но каждый раз у человека создаётся ощущение, что он "наконец-то нашёл то, что искал всю жизнь" - секты разложены по такому графу, чтобы от одного узла до другого вела такая вот дорожка, на которой декларируются ценности, которые должны были созреть у человека по результатам прошлой секты. Поскольку целью процесса является какой-то дальний результат, то не предусмотрено, чтобы человек задерживался в каждой секте надолго.

Таким образом создаётся человек нового типа. Я уже теперь делаю скидку на свой пессимизм, но мой пессимизм говорит, что этот человек подлежит (само)уничтожению, поскольку у него полностью разрушены такие понятия как "хорошо и плохо", а "грехи" находят оправдание и даже идеологическое обоснование.

По своему окружению я вижу, что длительность пребывания в каждой секте составляет до нескольких лет и обычно на выходе из графа человек крестится (я ещё не крестился). Т.е., в конце концов (с потерей времени, сил и набиванием шишек), человек обламывается и приходит к проверенным временем решениям. Хотя, может быть, просто ещё не прошла мода на Православие... Посмотрим, что будет дальше.

Конечно, компьютеры - это другое. Не совсем то же, что духовная жизнь. Но... Я вижу тот же самый процесс. Постепенная смена религий, каждая из которых всё хуже предыдущей. Всё более абсурдные догмы...

Но с чего я начал? С недолговечности сект. Месяц назад я читал на ЛОРе, что почти все Русские лисперы свалили на Хаскель. Вчера я прочитал на c.l.l. отзыв первого человека (не из России, правда), разочаровавшегося в Хаскеле. Посмотрим и на этот процесс - что же будет дальше...

den73 ★★★★★
()
Ответ на: комментарий от cathode

>Хаскель это (_|_) в терминах самого же хаскеля

а лисп это (((((((((((((((((((((((( в терминах самого же лиспа ;)

jtootf ★★★★★
()
Ответ на: комментарий от cathode

ну.. тогда лисп - это мыльная опера. Сперва всем периодически плохо. А вот в конце, все заканчивается длинным слащавым хеппи эндом )))))))))))))))))))))))

Waterlaz ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.