Size: a a a

F# Flood: ПДД made functional, making illegal state INGIBDDdale

2020 May 02

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Скомпозировал!
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Но когда я какой-то тайпкласс реализую, что я там скажу?
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Что я реализую монаду с логгером. Что я композирую при этом?
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
Но когда я какой-то тайпкласс реализую, что я там скажу?
Не, ты реализуешь инстанс своего типа с логером и с монадой чтобы можно было подать в такую функцию. Можно отдельно, да
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
То есть создаёшь отдельно инстанс логера, отдельно инстанс монады
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ayrat Hudaygulov
Не, ты реализуешь инстанс своего типа с логером и с монадой чтобы можно было подать в такую функцию. Можно отдельно, да
Я, признаться, запутался, что за монады с логгерами такие, и как их реализовывать
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Композируешь!
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ayrat Hudaygulov
То есть создаёшь отдельно инстанс логера, отдельно инстанс монады
Но ведь мне придётся какую-то ебаторию делать, чтобы их в один объект слить
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
Но ведь мне придётся какую-то ебаторию делать, чтобы их в один объект слить
Нет, в этом бонус
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Да как нет?
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
Да как нет?
Ну так нет
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Вот у меня есть

def foo[X : Monad with Logger](monal: X) {}
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
И что, где я тут скомпозировал?
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Как мне создать монал?
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Пишешь условно

type A with
  Interface Monad with
    ...
....

type A with
 Interface logger with
   ...
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ну вот это разве композиция?
источник

АВ

Андрей Вилинский... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
Но когда я какой-то тайпкласс реализую, что я там скажу?
вот ты приходишь просто и говоришь лист теперь функтор с такой-то функцией map, а не как в c# где всё гвоздями прибито, если Select то только для IEnumerable, и на выходе только он, а не сам лист.
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Это чистое незамутнённое множественное наследование
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
Вот у меня есть

def foo[X : Monad with Logger](monal: X) {}
У тебя где-то должны быть два инстанса X с монадой и Х с логером
источник

O

Orbarax in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
На самом деле, я не понимаю, почему. Мне кажется, что тайпклассы — это прям наследование реализации в чистом виде.
не наследование, а сабтайпинг
источник