Size: a a a

2020 April 19

F

Funcy in rust_offtopic
Ребята можно быстрый блиц опрос, ответьте не сильно задумываясь. Какую книгу читали после Rust book? (документация не в счёт)
источник

DS

Doge Shibu in rust_offtopic
Антон ⚙️
А чего не im-rs?
Там нет тех же иммутабельных списков, как пример
источник

B

Bogdan in rust_offtopic
Funcy
Ребята можно быстрый блиц опрос, ответьте не сильно задумываясь. Какую книгу читали после Rust book? (документация не в счёт)
Номикон?
источник

А⚙

Антон ⚙️ in rust_offtopic
Doge Shibu
А вот такой список в хаскеле используется чуть для другого:

Он там вместо итератора за счёт ленивости языка. Т.к. когда ты делаешь Cons там, то из-за ленивости там реально будет что-то вроде:

Cons(Lazy(head), Lazy(tail)), где, что head, что tail будут высчитаны, только при явном их использовании.

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

Т.е. большинство библиотченых операций с ними в хаскеле выражены через unfold и fold таких списков, и при этом можно пользоваться тем, что fold от unfold можно вычислить без создания списка, чем и пользуется стандартная библиотека через специально описанные rewrite rules для компилятора.
Гм, а разве компилятор не уберёт вычисление всего списка? Просто в силу ленивости вычисления
источник

DS

Doge Shibu in rust_offtopic
Антон ⚙️
Гм, а разве компилятор не уберёт вычисление всего списка? Просто в силу ленивости вычисления
Когда ты начнёшь наивным способом с ним делать операции, то будут вычисления ещё как.

Помни, что в хаскеле ленивые значения вычисляются при паттер-матче
источник

DS

Doge Shibu in rust_offtopic
Наивно написанные операции с такими списками всегда включают в себя их паттерн-матчинг
источник

А⚙

Антон ⚙️ in rust_offtopic
Doge Shibu
Когда ты начнёшь наивным способом с ним делать операции, то будут вычисления ещё как.

Помни, что в хаскеле ленивые значения вычисляются при паттер-матче
А просто strictness analysis не может убрать cons-ы?
источник

А⚙

Антон ⚙️ in rust_offtopic
Doge Shibu
Там нет тех же иммутабельных списков, как пример
А, действительно
источник

DS

Doge Shibu in rust_offtopic
Антон ⚙️
А просто strictness analysis не может убрать cons-ы?
С чего вдруг? Ты напиши какой-нибудь map и fold списка и распиши руками что будет вычисляться.

Там дофига промежуточного придется по пути создать
источник

А⚙

Антон ⚙️ in rust_offtopic
Стас Донцов
а он не имеет ручек для аллоцирования? выходит в расте не используют персистентные коллекции?
В расте сейчас можно только глобально ручку выставить
источник

А⚙

Антон ⚙️ in rust_offtopic
Doge Shibu
С чего вдруг? Ты напиши какой-нибудь map и fold списка и распиши руками что будет вычисляться.

Там дофига промежуточного придется по пути создать
То есть rewrite rules нужны и sufficiently smart compiler™ этого не сделает?
источник

DS

Doge Shibu in rust_offtopic
Антон ⚙️
То есть rewrite rules нужны и sufficiently smart compiler™ этого не сделает?
Ну с whole program анализатором, эскейп анализом и т.п. скорее всего справится, но эскейп анализ в хаскеле только появляется
источник

А⚙

Антон ⚙️ in rust_offtopic
Doge Shibu
Ну с whole program анализатором, эскейп анализом и т.п. скорее всего справится, но эскейп анализ в хаскеле только появляется
Серьёзно, только сейчас?
источник

DS

Doge Shibu in rust_offtopic
Антон ⚙️
Серьёзно, только сейчас?
Насколько я знаю - да
источник

DS

Doge Shibu in rust_offtopic
Антон ⚙️
Серьёзно, только сейчас?
Хорошо в это умеет GRIN, но его к хаскелю ещё не прикрутили
источник

А⚙

Антон ⚙️ in rust_offtopic
Doge Shibu
Всякие хорошие work-stealing пулы и т.п. могут с таким куда лучше справится
Угу, rayon хорош
источник

А⚙

Антон ⚙️ in rust_offtopic
Doge Shibu
Хорошо в это умеет GRIN, но его к хаскелю ещё не прикрутили
GRIN же вроде давно очень сделали и написали папир
источник

DS

Doge Shibu in rust_offtopic
Антон ⚙️
GRIN же вроде давно очень сделали и написали папир
До сих пор вроде над ним работают, но к хаскелю-то полноценно его не прикрутили
источник

А⚙

Антон ⚙️ in rust_offtopic
Doge Shibu
В хаскеле спокойно тысячи лет были корутины без всякой вм и байткода
У Хаскелля рантайм жирный
источник

А⚙

Антон ⚙️ in rust_offtopic
Doge Shibu
До сих пор вроде над ним работают, но к хаскелю-то полноценно его не прикрутили
Блин, жалко-то как
источник