Size: a a a

2020 April 10

DS

Doge Shibu in rust_offtopic
Ну это называется обычно персистентный иммутабельный список
источник

СД

Стас Донцов... in rust_offtopic
токсик пати детектед
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
LinkedList<Rc<Value>>

struct Value {
 List(LinkedList<Rc<Value>>>),
 Number(i32),
 String(String),
 ...
}
Примерно так, только сложнее и более общее
источник

P

Pavel in rust_offtopic
polunin.ai
что значит "ветвится?"
лол
источник

p

polunin.ai in rust_offtopic
Pavel
лол
кек
источник

P

Pavel in rust_offtopic
indeed
источник

EG

Emmanuel Goldstein in rust_offtopic
Например, в моей версии длина списка известна в каждый момент
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
LinkedList<Rc<Value>>

struct Value {
 List(LinkedList<Rc<Value>>>),
 Number(i32),
 String(String),
 ...
}
Подожди, нет, твоя версия тоже не разветвленная
Тебе придется клонировать все Rc, чтобы склонировать список
источник

EG

Emmanuel Goldstein in rust_offtopic
А мне нужно всего один
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Подожди, нет, твоя версия тоже не разветвленная
Тебе придется клонировать все Rc, чтобы склонировать список
ну да
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
А мне нужно всего один
хрень какая-то
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
хрень какая-то
?
источник

p

polunin.ai in rust_offtopic
список ветвящийся
источник

EG

Emmanuel Goldstein in rust_offtopic
Обоснуй
Ты получил иммутабельный список, который копируется за O(N)
Я получил иммутабельный список, который копируется за O(1)
источник

EG

Emmanuel Goldstein in rust_offtopic
Хрень — твой список, а не мой
источник

EG

Emmanuel Goldstein in rust_offtopic
Emmanuel Goldstein
let a = list![1, 2, 3];
let b = a.cons(4);
let c = a.cons(5);
4 → 3 → 2 → 1
5 →↑

Эта структура в памяти выглядит так
источник

EG

Emmanuel Goldstein in rust_offtopic
На элемент (3) указывают два элемента, и дальше это всё равно, что один список
источник

p

polunin.ai in rust_offtopic
я же говорю, хрень какая-то бесполезная
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
я же говорю, хрень какая-то бесполезная
Основа функциональных языков, но ладно
источник

EG

Emmanuel Goldstein in rust_offtopic
Собственно, встроенный список Haskell — это, вероятно, оно
источник