amarao: (Default)
[personal profile] amarao
Говорят, монадки уже не модны (ибо IRL крайне неудобны в использовании), а вместо них грядут ещё более головоломные effect handler'ы. Я попытался послушать про них, но там уровень, на котором не хватает базового бэкграунда, чтобы понимать punch line у докладчиков.

Если пересказать в режиме "мойша напел", то effect handler'ы - это обобщение теории типов на сайд-эффекты, в которых эксепшены (и прочие сайд-эффекты) описываются в рамках модели (видимо, уже не типов), и позволяют компилятору делать выводы относительно происходящего, а авторам кода - накладывать ограничения на то, что именно происходит. Они покрывают собой эксепшены, но не только, и являются обобщением понятия.

Всё остальное надо слушать не в моём исполнении.

А ещё, мне первый раз объяснили, что такое монады. И я первый раз понял.

Это не rust-код (т.к. Self не может иметь типопараметр), но суть передаёт.

trait Monad<A> {
fn flat_map<B>(self, f: fn(A) -> Self<B>) -> Self<B>;
fn new(a: A) -> Self<A>;
}

(отсюда: https://users.rust-lang.org/t/please-tell-me-yeet-is-not-a-thing-in-rust/84843/47)

Date: 2022-12-02 04:04 pm (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Delimited continuations - странная штука, я не раз видел, как оно зверски помогает (скажем, секьюрити в твитерском коде, лет 10+ назад) - но сам никогда так и не освоил этот трюк.

Спасибо за линки; почитаю. Для меня, как для категорщика, монады очевидны, там математика и логика. А вот трюки я бы сначала перевел на категорный язык, а потом бы уже разбирал. Тем более, Карри-Хауард-Ламбек говорят нам, что больше ничего и нету, одни категории.

Profile

amarao: (Default)
amarao

February 2026

S M T W T F S
123456 7
8910111213 14
15161718192021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 07:59 am
Powered by Dreamwidth Studios