Size: a a a

F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)

2020 August 12

МП

Миша Проказин... in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Вчитался внимательнее и кажется немного догнал
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Миша Проказин
Вчитался внимательнее и кажется немного догнал
ну если код на псевдосишарпе кажется понятным, то должно быть ок
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
если там Лист заменить на Таск/Async/Option/Result, то законы те же
источник

МП

Миша Проказин... in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Давай для третьего пример на твоём псевдосишарпе
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Миша Проказин
Давай для третьего пример на твоём псевдосишарпе
А давай ты, а я поправлю
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
(а может и не придётся поправлять)
источник

МП

Миша Проказин... in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
ЫЫЫ
источник

МП

Миша Проказин... in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Ну дай мне пару минут
источник

МП

Миша Проказин... in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
list.SelectMany(f).SelectMany(g)
list.SelectMany(x -> f(x).SelectMany(g))
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
ага
источник

МП

Миша Проказин... in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
охуеть
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Law 3: (m >>= f) >>= g behaves the same as m >>= (fun x -> f x >>= g).

List(1,2,3).SelectMany(x => f(x)).SelectMany(x => g(x))
=====
List(1,2,3).SelectMany(x => f(x).SelectMany(y => g(y)))

во втором примере селектМени применяется к результату f(x) сразу же.
Списки конечно же получатся одни и те же. Здесь очень важный закон последовательности вычислений в монадическом коде.
Потому что монады это императивщина
источник

МП

Миша Проказин... in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Охуеть. Я монаду понял
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
ну в общем, да, они простые. Как моноид в категории эндофункторов
источник

МП

Миша Проказин... in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Ну всё, пойду подкручу ожидаемую зарпалату на хх.
источник

МП

Миша Проказин... in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Ayrat Hudaygulov
ну в общем, да, они простые. Как моноид в категории эндофункторов
Есть ссылка, в которой объясняют слова "в категории эндофункторов"? Интересно теперь и умные слова почитать.
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Миша Проказин
Есть ссылка, в которой объясняют слова "в категории эндофункторов"? Интересно теперь и умные слова почитать.
ну да, в теории категорий.
Функтор это "функция" которая мапит категорию в категорию. Эндофунктор просто мапит в ТУ же категорию (а не в другую).
В категории присутствуют только объекты и стрелочки между ними, функтор мапит И объекты, И стрелочки.

В программировании категория типов (назовём её T) отождествляет объектам собсно типы, а стрелочкам функции между типами.

То есть эндофунктор List должен уметь мапить объекты из категории T в ту же категорию (но в другой объект этой категории. Допустим из типа int в тип List<int>), а стрелочку(функцию) int->string он должен смапить в стрелочку(функцию) List<int> -> List<string>

вот собсно и всё про функтор. Это просто особая функция. Над категориями
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
если нарисовать диаграмму всё становится очень понятно. Поэтому в теоркате любят диграммы с точками и стрелочками
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
собсно в программировании покуда мы работаем только с категорией типов все функторы будут эндофункторами
источник

AH

Ayrat Hudaygulov in F# Flood: Неделя Революций (прирост борцов за свободу вырос вдвое)
Но может тут теоркат дрочеры налетят и поправят меня. Я не знаю какие ещё категории в программировании используются и как выйти за её пределы
источник