Size: a a a

Programming Offtop

2020 May 26

(

( in Programming Offtop
Короче, когда ты ставишь F[_] : Monad, у тебя это может быть что угодно, ты не накладываешь ограничений и вместе с тем знаешь достаточно лишь настолько, чтобы мочь композировать эф-дырки, которые ещё и хер проссышь, откуда берутся. С помощью мтля (или чего-нибудь ещё), можно в типах зафиксировать то, что функция абстрактно умеет делать и прокинуть ей это все из точки входа без всяких диаев
источник

I

Igor in Programming Offtop
Konstantin Dovnar
Ох. Это вот такие вот наркоманы потом на собесах во всяких Яндексах требуют идеально помнить весь синтаксис и наименования при написании кода на листочке. Пиздец:)
Ну камон, они же оба верифицируют логику программно (компилятор/тесты).
А в yandex просто дегенераты собесы проводят.
источник

AZ

Alexander Zalutskiy in Programming Offtop
Igor
Ну камон, они же оба верифицируют логику программно (компилятор/тесты).
А в yandex просто дегенераты собесы проводят.
Ну не все же( Что же так категорично
источник

(

( in Programming Offtop
Я не помню, как там это будет в скале, в хаскеле чето такое

goToNetwork :: (NetworkClient n, Monad e) => ReaderT (n, NetworkParams) NetworkResult e
goToNetwork (n, p) = sendRequest n p
источник

I

Ilmir in Programming Offtop
(
Профитнее её сужать до конкретных капабилитис, вроде Has Jopa, Has Huy, Has NetworkClient
И писать типа fun <T> T.canVomitAndShitAtTheSameTime() where T : HasAss, T : HasSomethingElse, T : HasMouth?
Это всё хорошо, пока тебе не понадобится fun <T> T.canVomitOrShit() where T : (HasAss | HasMouth), T : HasSomething. Union типы не в каждый язык завезли.
источник

(

( in Programming Offtop
Ilmir
И писать типа fun <T> T.canVomitAndShitAtTheSameTime() where T : HasAss, T : HasSomethingElse, T : HasMouth?
Это всё хорошо, пока тебе не понадобится fun <T> T.canVomitOrShit() where T : (HasAss | HasMouth), T : HasSomething. Union типы не в каждый язык завезли.
Ну это в котлине так, лол
источник

(

( in Programming Offtop
Хотя я не могу представить, когда коэффект понадобилось бы делать юнионом
источник

(

( in Programming Offtop
Коэффекты это строго моноид в типах с умножением
источник

I

Ilmir in Programming Offtop
(
Ну это в котлине так, лол
Ну и каждую функцию помечать это такое себе на самом деле. Это возврат к annotation-based programming'у, только теперь вместо кучи аннотаций на каждой функции куча T : Has.
источник

I

Igor in Programming Offtop
А если писать на языке с вывод типов в аргументах 🤔
источник

(

( in Programming Offtop
Ilmir
Ну и каждую функцию помечать это такое себе на самом деле. Это возврат к annotation-based programming'у, только теперь вместо кучи аннотаций на каждой функции куча T : Has.
ооп-шника порвало
источник

(

( in Programming Offtop
Igor
А если писать на языке с вывод типов в аргументах 🤔
вот кстати интересно, сможет ли хашкель сам выводить капабилитис
источник

I

Ilmir in Programming Offtop
(
ооп-шника порвало
С чего бы? Я просто видел такой код (хотя и на расте) и не вполне понимаю профита. Чиатть - так себе. Писать - копипаст на копипасте. Зачем вместо одного большого трейта делать кучу маленьких?
источник

(

( in Programming Offtop
Ilmir
С чего бы? Я просто видел такой код (хотя и на расте) и не вполне понимаю профита. Чиатть - так себе. Писать - копипаст на копипасте. Зачем вместо одного большого трейта делать кучу маленьких?
SRP, Expression Problem
источник

(

( in Programming Offtop
Кучу маленьких проще перекомпозировать и расширять, чем один большой
источник

I

Ilmir in Programming Offtop
(
SRP, Expression Problem
Это тот самый Expression Problem, ради решения которого в ООП завезли визиторы?
источник

(

( in Programming Offtop
Ilmir
Это тот самый Expression Problem, ради решения которого в ООП завезли визиторы?
да
источник

(

( in Programming Offtop
я просто сегодня вспомнил, как это называется
источник

I

Ilmir in Programming Offtop
Ну ясно, значит, возвведение его в абсолют отравляет не только ООП код, но и функциональный. Будем знать.
источник

I

Ilmir in Programming Offtop
Хотя есть куча других решений Expression Problem, и в ООП с его визиторами и в (T : Has)-based программировании предпочитают их игнорировать.
источник