Size: a a a

2021 May 28

а

а это кто in rust_offtopic
интересно как это на практике отражается
источник

TK

Traveller Kolsky in rust_offtopic
Монада - это тип/трейт, на котором определены операции
bind: m a -> (a -> m b) -> m b; Option::and_then,
return: a -> m a; Some или Option::from.
Хорошие монады удовлетворяют трём монадическим законам.
Первые два: return можно скомпозировать (bind'ом) в любом порядке с произвольной функцией f (той же сигнатуры, что и у return), и результат будет тот же, что и простой вызов f. Some(x).and_then(f) = f(x).and_then(Some) = f(x).
Третье: порядок композирования не имеет влияния на результат. Достаточно вспомнить, что try-оператор можно задействовать на любом числе упакованных в Option переменных, и выражение, возвращающее Some, нельзя будет вычислить, пока во всех упаковках не будет значение.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
а в чем заработок?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ты неправильно объясняешь
источник

KR

Kai Ren in rust_offtopic
Какие пруфы можно писать, насколько удобно в тех или иных случаях, и т.п.
источник

TK

Traveller Kolsky in rust_offtopic
Поправь, где неправ
источник

B

Börgar in rust_offtopic
так, а в расте низзя bind изза вариадик темплейтов низзя?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
монада это интерфейс Chainable. Ну или на худой конец программируемая точка запятая. В крайнем случае - коробка или буритто
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
в расте нельзя бинд (хуевое название для операции монады бтв) потому што интерфейсы  не монадические
источник

B

Börgar in rust_offtopic
источник

B

Bulba in rust_offtopic
Смотрите носки какие
источник

B

Börgar in rust_offtopic
тоесть
источник

TK

Traveller Kolsky in rust_offtopic
Неправильное с точки зрения чего, лол. Так упрощать уж совсем ничего не даст.
источник

B

Börgar in rust_offtopic
gimme
источник

а

а это кто in rust_offtopic
Монада это интерфейс обобщающий Option, Result, асинхронные футуры, IO действия, а так же Парсеры и многое другое
источник

а

а это кто in rust_offtopic
Суть обобщения в том что если написать функцию работающую для одной монады, она будет работать для всех перечисленных задач
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну вот например у итераторов.

должно быть map : (a -> b) -> f a -> f b
что есть по факту: map : (a -> b) -> f a -> Map f b
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну это наполовину шутка была
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
а так - надо объяснять в оопэшных категориях тогда людям понятнее
источник

KR

Kai Ren in rust_offtopic
а не проще сначала обьяснить что такое функтор?
источник