Size: a a a

2020 November 25

SL

Sergey Loguntsov in ErlangRus
Иванов Иванов
эрланг это предметно-ориентированный язык управления легкими потоками
скажите это эликсилиристам
источник

И

Иλьямбда in ErlangRus
В эрланге, кажется, нет настолько же удобного и простого механизма для создания честных мутабельных структур данных (да он, вроде, и не нужен никому особо)
источник

SP

Sergey Prokhorov in ErlangRus
Иванов Иванов
если ты отключаешь, а траффик все равно утилизируется то это не фича, а архитектурный баг
ну я тикет запилил, посмотрим https://bugs.erlang.org/browse/ERL-1416
источник

И

Иλьямбда in ErlangRus
Sergey Loguntsov
вот и лямбда пришла  ) .. да .. я верю что в хаскеле это можно , там же все ленивое
Там суть вообще не в ленивости, а в том, что хаскель предоставляет достаточно удобную и несложную в использовании обёртку над нативными указателями
источник

LL

Lama Lover in ErlangRus
Да суть в том, что двусвязный список не нужен. Я всё ещё не понимаю зачем

@loguntsov говорит: "двусвязный список", а уточняет "хочу по ссылке доступ", и ещё добавляет: "для LRU кэша"

Это разве не бред?
источник

ИИ

Иванов Иванов... in ErlangRus
Lama Lover
Да суть в том, что двусвязный список не нужен. Я всё ещё не понимаю зачем

@loguntsov говорит: "двусвязный список", а уточняет "хочу по ссылке доступ", и ещё добавляет: "для LRU кэша"

Это разве не бред?
что значит "не нужен" ?
источник

ИИ

Иванов Иванов... in ErlangRus
вообще не нужен?
источник

SL

Sergey Loguntsov in ErlangRus
Lama Lover
Да суть в том, что двусвязный список не нужен. Я всё ещё не понимаю зачем

@loguntsov говорит: "двусвязный список", а уточняет "хочу по ссылке доступ", и ещё добавляет: "для LRU кэша"

Это разве не бред?
я вот думаю, кто из нас двоих на вентилятор накидывает
источник

LL

Lama Lover in ErlangRus
Иванов Иванов
что значит "не нужен" ?
То и значит, двусвязный список отличается от односвязного тем, что по нему оптимально проходиться не только с головы, но и с хвоста некоторой функцией (назову её reduce(head, acc) -> acc) и можно добавлять элемент в конец за O(1)

Чтобы добавлять элемент в конец за O(1), можно использовать queue или персистентный дэк (у Окасаки можно подсмотреть)

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

* Считать значение аккумулятора при добавлении элемента

* Вместо нескольких фолда для одного и того же дэка, использовать не более двух: один с головы, другой с конца. Тогда они оба будут работать без разворота.

Ну и наконец использовать ets, доступ за O(log N) не такой уж и долгий, учитывая что разброс скорости доступа в зависимости от уровня кэша будет больше чем оверхэд от прыжков по дереву
источник

LL

Lama Lover in ErlangRus
Доступ к элементу по ссылке в определение двусвязного списка не входит
источник

ИИ

Иванов Иванов... in ErlangRus
Lama Lover
Доступ к элементу по ссылке в определение двусвязного списка не входит
итераторы не входят в определение структур данных, это отдельная абстрация. и какова сложность insert_befor в односвязном списке?
источник

LL

Lama Lover in ErlangRus
Иванов Иванов
итераторы не входят в определение структур данных, это отдельная абстрация. и какова сложность insert_befor в односвязном списке?
Что делает insert_before ?
источник

ИИ

Иванов Иванов... in ErlangRus
Lama Lover
Что делает insert_before ?
List1 = lists:insert_befor(Iterator, List, a)
источник

ИИ

Иванов Иванов... in ErlangRus
List = [1, 2, 3], Iterator = 2, List1 = [1, a, 2, 3]
источник

LL

Lama Lover in ErlangRus
Иванов Иванов
List = [1, 2, 3], Iterator = 2, List1 = [1, a, 2, 3]
Ну тут O(N)
источник

ИИ

Иванов Иванов... in ErlangRus
Lama Lover
Ну тут O(N)
упс
источник

LL

Lama Lover in ErlangRus
Так, а в двусвязном списке всё равно O(N)
источник

ИИ

Иванов Иванов... in ErlangRus
Lama Lover
Так, а в двусвязном списке всё равно O(N)
чо это?
источник

AB

Alexey Bolshakov in ErlangRus
извиняюсь, что влезаю. а элементы какого типа?
источник

ИИ

Иванов Иванов... in ErlangRus
Lama Lover
Так, а в двусвязном списке всё равно O(N)
ну строго говоря если учесть реализацию с неизменямостью - профита не будет. но ты же утверждаешь "вообще"
источник