Size: a a a

(F|R|FR)P - русскоговорящее сообщество

2018 September 25

к

кана in (F|R|FR)P - русскоговорящее сообщество
монадность можно натянуть на что угодно почти, само по себе это бесполезно, если это никак не использовать, а это никак не используют
источник

AP

Aleksei Privezentcev in (F|R|FR)P - русскоговорящее сообщество
Я не могу ответить. Помню do-нотацию.  Ко по мне она очень смахивает на цепочку операторов. Обобщенную нотацию еще не изучал.

Я подходил к вопросу "Что есть монада?" по ее интерфейсам. У нее есть return и join, а от функтора ей достался fmap. С объектом с таким набором методом можно удобно работать. Что запросы ченйить, что просто ивенты всякие в кучу складывать, группировки, фильтрации и и тд.
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
нет-нет-нет
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
есть некая структура данных
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
и есть функции для работы с ними
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
и все это само по себе
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
можно выбрать тип второго порядка и несколько функций и они будут монадой (если подходят)
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
где используют эту монаду
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
вот есть у нас промис:
Promise<T>
Promise.resolve(T): Promise<T>
Promise.reject(any): Promise<T>
Promise<T>#then(T -> G): Promise<G>
Promise<T>#then(T -> Promise<G>): Promise<G>

вот эти функции сами по себе и никуда не денутся
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
а вот потом мы сделали монаду (псевдокод): {
const promiseMonad = {
 type T: Promise,
 of: Promise.resolve,
 join: p => p.then(x => x),
};
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
вот это конкретно монада
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
это тройка из эндофунктора и двух семейств морфизмов
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
кто ее использует?
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
использование монад подразумевает возможность писать общемонадный код, то есть вынести из разных вещей ОБЩИЙ интерфейс и работать с ними одинаково, писать обобщенные функции для любых монад
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
монада - инструмент для чего-то, а не изначальная конструкция/цель
источник

к

кана in (F|R|FR)P - русскоговорящее сообщество
как и тк в принципе
источник

ЗП

Зигохистоморфный Препроморфизм in (F|R|FR)P - русскоговорящее сообщество
суть абстракции в том и есть, выделить общее и при конкретизации должны соблюдаться все законы и свойства
источник

ЗП

Зигохистоморфный Препроморфизм in (F|R|FR)P - русскоговорящее сообщество
а промис еще та хуйня
источник

ЗП

Зигохистоморфный Препроморфизм in (F|R|FR)P - русскоговорящее сообщество
ранняя!
источник

AP

Aleksei Privezentcev in (F|R|FR)P - русскоговорящее сообщество
Т.е. я все же правильно зацепился за их интерфейс. Но нужно чтобы этот интерфейс в точности имплементировали все, кто пытается назваться монадой. Есть 100500 всяких вещей (вон у массивов например скоро появитсья свой flatMap), но названия методов у них отличается. Поэтому монадность не заходит в полной мере в js.
источник