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-03 01:10 am (UTC)
sab123: (Default)
From: [personal profile] sab123
Я про монад уже двно объяснял популярными словами: https://babkin-cep.blogspot.com/2014/07/monads.html

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