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
Orbarax
где хкт?
Ну ты говоришь что надо писать то же самое для многих классов. Ну да надо
источник

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
Dr. Friedrich von Never
IEnumerable<string> Foo() {
 var argument = MyList.MyArgument;
 return from x in argument select x.ToString();
}
Даю хинт, чуваки: можно этот код из shared project включить в несколько нормальных проектов, в которых MyList резолвится по-разному.
источник

NM

Nikolay M in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Развёл срач и убежал
источник

O

Orbarax in F# Flood: ПДД made functional, making illegal state INGIBDDdale
блджад. я не понимаю. есть метод void Foo(MyList x), в котором делается from .. in .. where .. select. как мне использовать его для нескольких разных типов?
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
И получить инстанциацию любым нужным типом
источник

NM

Nikolay M in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Мир, труд, класс
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Orbarax
блджад. я не понимаю. есть метод void Foo(MyList x), в котором делается from .. in .. where .. select. как мне использовать его для нескольких разных типов?
Я пояснил уж куда подробней
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
IEnumerable<string> Foo() {
 var argument = MyList.MyArgument;
 return from x in argument select x.ToString();
}
Ну не, у тебя возвращаемое значение IEnumerable, а селект у любого типа, который его поддерживает, не обязан возвращать IEnumerable.
источник

Dv

Dr. Friedrich von Ne... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Doge Shibu
Ну не, у тебя возвращаемое значение IEnumerable, а селект у любого типа, который его поддерживает, не обязан возвращать IEnumerable.
Я могу написать MyList
источник

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
Ну, с добавлением типа в сигнатуру действительно сложновато идёт, в том числе потому, что вы сопротивляетесь
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
Я могу написать MyList
Нет, важно, чтобы оно работало для любого типа, который будет передан в метод
источник

O

Orbarax in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
Два слова: shared library
расшаренный код, ясно. мономорфизация, как в с++
источник

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
Было требование чтоб был полиморфный код, который с любым типом работает
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Dr. Friedrich von Never
Но не было требования чтоб типы были в сигнатуре
Ну если скатываться в софистику, то можно проще.
источник