Size: a a a

2021 February 19

AT

Anton Ternavsky in F# Chat
Ayrat Hudaygulov
ну, обычная перегрузка, но способ реализации вырвиглазный
Дык может я конечно предвзят, но перегрузка операторов не в математическом либо DSLном коде(заточенном на конкретную предметную область), а в коде общего назначения(а тут такой) достаточно большого размера-это усложнение себе жизни, особенно если операторы имплиситные.
источник

SN

Shub Niggurath in F# Chat
Anton Ternavsky
Дык может я конечно предвзят, но перегрузка операторов не в математическом либо DSLном коде(заточенном на конкретную предметную область), а в коде общего назначения(а тут такой) достаточно большого размера-это усложнение себе жизни, особенно если операторы имплиситные.
ты проповедуешь в хор, если что
источник

R

Roman in F# Chat
Дмитрий Башинский
А как там слелали >>= для всех монад?
оверайлинга ж у нас нет
через сртп вызывают статический метод у типа, который называется Bind. Ну и для Map то же самое. Поэтому Result и Option из кор либы не подходят, нужно было свои делать.
источник

AT

Anton Ternavsky in F# Chat
Shub Niggurath
ты проповедуешь в хор, если что
Не распарсил "в хор"
источник

SN

Shub Niggurath in F# Chat
Anton Ternavsky
Не распарсил "в хор"
хор находится сзади пастора обычно
источник

SN

Shub Niggurath in F# Chat
в смысле, не в ту сторону воюешь
источник

AT

Anton Ternavsky in F# Chat
А, ты в этом смысле. Да я вообще воевать ни с кем не планировал :)
источник

AH

Ayrat Hudaygulov in F# Chat
Anton Ternavsky
Дык может я конечно предвзят, но перегрузка операторов не в математическом либо DSLном коде(заточенном на конкретную предметную область), а в коде общего назначения(а тут такой) достаточно большого размера-это усложнение себе жизни, особенно если операторы имплиситные.
ну оператор это условная обычная функция всегда
Просто тут эта функция по идее над типом с условием (тип должен быть функтором)
Чтобы такое изобразить нужны хкт или тупеклассы

В фшарпе нет ни того, ни другого, но через сраку можно навернуть на функцию перегрузку через сртп
И так получается что наша функция принимает целый набор типов (имитируем хкт через ручное объявление для каждого нужного типа) которые обладают функцией bind (имитируем тупеклассы через сртп констрейн)

Далее вешаем эту функцию на оператор и вуаля
источник

R

Roman in F# Chat
Roman
через сртп вызывают статический метод у типа, который называется Bind. Ну и для Map то же самое. Поэтому Result и Option из кор либы не подходят, нужно было свои делать.
ну а к своим Result и Option надо, разумеется, еще по соответствующему модулю написать, в котором есть все, что нужно бойцу. А потом еще покрыть пересечения вроде Result.ofOption и тд
источник

AH

Ayrat Hudaygulov in F# Chat
остальных мы выжили, наверное
источник

AH

Ayrat Hudaygulov in F# Chat
но такие тоже были
источник

SN

Shub Niggurath in F# Chat
Ayrat Hudaygulov
ну оператор это условная обычная функция всегда
Просто тут эта функция по идее над типом с условием (тип должен быть функтором)
Чтобы такое изобразить нужны хкт или тупеклассы

В фшарпе нет ни того, ни другого, но через сраку можно навернуть на функцию перегрузку через сртп
И так получается что наша функция принимает целый набор типов (имитируем хкт через ручное объявление для каждого нужного типа) которые обладают функцией bind (имитируем тупеклассы через сртп констрейн)

Далее вешаем эту функцию на оператор и вуаля
1. навернуть на функцию перегрузку через сртп через сраку
2. вешаем эту функцию на оператор
3. ??????? (вы находитесь здесь)
4. вуаля
источник

R

Roman in F# Chat
Ayrat Hudaygulov
но такие тоже были
я че-то кстати не помню, чтоб кто-то прям яро защищал это поделие. Скорее, были те, кто не использовал, но не готов был поверить, что это настолько больно
источник

AH

Ayrat Hudaygulov in F# Chat
Shub Niggurath
1. навернуть на функцию перегрузку через сртп через сраку
2. вешаем эту функцию на оператор
3. ??????? (вы находитесь здесь)
4. вуаля
5, PROFIT, тонны денег, любовь женщин
источник

SN

Shub Niggurath in F# Chat
нет, именно так. откуда там профиту взяться
источник

AT

Anton Ternavsky in F# Chat
Мне тоже такой прагматизм близок.
источник

AH

Ayrat Hudaygulov in F# Chat
Roman
я че-то кстати не помню, чтоб кто-то прям яро защищал это поделие. Скорее, были те, кто не использовал, но не готов был поверить, что это настолько больно
ну не прям про фшарп плюс, но упоротые фпшники забегали
источник

R

Roman in F# Chat
Shub Niggurath
нет, именно так. откуда там профиту взяться
джет продали с большим профитом, ты зря
источник

AT

Anton Ternavsky in F# Chat
Ayrat Hudaygulov
ну оператор это условная обычная функция всегда
Просто тут эта функция по идее над типом с условием (тип должен быть функтором)
Чтобы такое изобразить нужны хкт или тупеклассы

В фшарпе нет ни того, ни другого, но через сраку можно навернуть на функцию перегрузку через сртп
И так получается что наша функция принимает целый набор типов (имитируем хкт через ручное объявление для каждого нужного типа) которые обладают функцией bind (имитируем тупеклассы через сртп констрейн)

Далее вешаем эту функцию на оператор и вуаля
Понял, спасибо за объяснение.
источник

SN

Shub Niggurath in F# Chat
в джете не было ничего такого. джет - это суровые портянки и мозоли
источник