@Fsharp_chat

Страница 539 из 772
Artemy
05.04.2018
14:48:15
Ну т.е. type MyClass() as this = ...

https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/classes#self-identifiers

Klei
05.04.2018
15:06:46
По-моему, для таких случаев нужно self-identifier объявлять на уровне типа
Да здесь локального должно хватать. К тому же это расширение типа.

?‍?
05.04.2018
15:11:55
оо, тоже проперти
Контрастная подсветка или наведение курсора всегда подскажет что получится. Мне бы вот понять как обернуть структуру, чтобы как в рекордах через with вставлять изменения. Оператор неявного преобразования?

Google
Artemy
05.04.2018
15:12:19
@Kleidemos а в каких тогда случаях нужен (обязателен) "само-идентификатор" на уровне типа? А то я что-то и не припоминаю

Artemy
05.04.2018
15:14:59
А, ну да, логично, спасибо

Ну тогда я и не знаю, что неправильно в вышеприведённом примере

Roman
05.04.2018
15:17:17
Hi
Where are you from?

Klei
05.04.2018
15:18:46
Да здесь локального должно хватать. К тому же это расширение типа.
Извиняюсь, не так прочитал, это же имплементация интерфейса, а не расширение.

Владислав
05.04.2018
15:19:34
Roman
05.04.2018
15:19:49
попробуй this привести к IRepository

Roman
05.04.2018
15:20:09
и потом у него уже вызвать Delete

Roman
05.04.2018
15:20:20
Google
Roman
05.04.2018
15:20:22
?

Владислав
05.04.2018
15:20:31
Сори, уже отошёл от компа

Но спасибо!

Klei
05.04.2018
15:20:49
Я первый сказал!
Я код писал, так нечестно!

Artemy
05.04.2018
15:21:20
Попробуй (this :> IRepositry<_>).Delete.
Точняк, вроде, когда-то так и делал

Была проблема

Roman
05.04.2018
15:22:12
Зато я параллельно зарадил следующие вопросы: Как нужно приводить тип к типу? Почему нужно именно так? Сразу возникает вопрос "почему так не красиво"? А потом приходит понимание насколько это круто

Artemy
05.04.2018
15:22:22
Вообще, такая себе необходимость. Неплохо бы это было подправить, наверное. Но это не точно, т.к. я не эксперт. :) Вероятно, есть у такого подхода плюсы

Artemy
05.04.2018
15:23:08
Не смешивается всё в кучу? В том же автокомплите всегда ясно, где чьи методы?

Roman
05.04.2018
15:23:29
в методы\функции, а передаешь Интерфейсы, язык подталкивает к прогрммироаванию на интерфейсах

т.е. даже ооп у F# лучше чем у C#

Klei
05.04.2018
15:24:27
Пока не вернут protected, однозначного знака не будет.

Roman
05.04.2018
15:24:43
нуок(

Artemy
05.04.2018
15:26:41
Наверное, простому обывателю это всё может показаться недостатком, на первый взгляд. А о вышеприведённом преимуществе не каждый задумается

Roman
05.04.2018
15:26:56
?‍?
05.04.2018
15:27:30
как?
Хранить ссылки как интерфейсы, например

Google
Klei
05.04.2018
15:27:43
Evgeniy
05.04.2018
15:28:17
На C# точно также надо.
Нет, в C# это неявно работает.

?‍?
05.04.2018
15:28:20
(this as IRepositry<T>).Delete

Klei
05.04.2018
15:28:44
Это может быть необходимо при явной имплементации интерфейса.

?‍?
05.04.2018
15:28:50
Нет, в C# это неявно работает.
Смотря как реализовать интерфейс!

Это может быть необходимо при явной имплементации интерфейса.
Вот-вот ^ @gsomix (кажется это лишнее в контексте вышесказанного)

Roman
05.04.2018
15:29:31
У F# более строгий вывод типов. так что тут это необходимость, в C# - шанс отстрелить ногу

ну не ногу, но мизинчик поранить)

Evgeniy
05.04.2018
15:31:42
Вот-вот ^ @gsomix (кажется это лишнее в контексте вышесказанного)
Пример кода, пожалуйста. Я плохо представляю.

?‍?
05.04.2018
15:32:02
Пример кода, пожалуйста. Я плохо представляю.
Тогда как доберусь до дома, если кто за меня не сделает.

Roman
05.04.2018
15:34:17
Пример кода, пожалуйста. Я плохо представляю.
interface ILog { void Log(object) }; interface ILogger {void Log(object)}; class LoggerLog : ILog, ILogger { public void ILog.Log(object o) => Console.WriteLine("Log"): public void ILogger.Log(object o) => Console.WriteLine("Logger"): }

Roman
05.04.2018
15:35:26
Ты знаешь, что знание C# тут не моде? ?

?‍?
05.04.2018
15:36:26
Ты знаешь, что знание C# тут не моде? ?
Не выбрасывать же из багажа родственника (пусть и баба с возу..)

Roman
05.04.2018
15:36:57
Я больше про себя)

Artemy
05.04.2018
15:37:58
Математика засоряется приведениями типов

Roman
05.04.2018
15:38:21
есть немного

Artemy
05.04.2018
15:38:38
Ну и по-быстрому скриптик набросать посложнее получается

Google
Artemy
05.04.2018
15:39:09
В принципе, в Хаскелле похожая проблема

Roman
05.04.2018
15:39:18
мне казлось что нет

?‍?
05.04.2018
15:39:54
На числах всё же подбешивает немного
Вот тут вопрос, что эффективнее использовать для числового ключа карты, если значений не очень много, например, не будет ли byte/uint16 конвертиться внутри логики поиска в тот же int?

Artemy
05.04.2018
15:40:00
Ну там, насколько вспоминаю, приходилось-таки что-то приводить. Хотя засчёт тайпклассов, вроде, попроще, чем в F#

Roman
05.04.2018
15:40:48
здесь я думаю тоже проблем не должно быть перегрузить операторы, не?

Vasily
05.04.2018
16:34:45
Я сегодня себе мозг сломал. Накидайте идей по десериализации объекта произвольного типа

Roman
05.04.2018
16:38:34
Используй animate.css

ты о каких идеях?

Vasily
05.04.2018
16:44:42
Да я все хочу написать какой-то билдер, который будет представлять граф сериализации и десериализации объекта

Точнее, два билдера

Roman
05.04.2018
16:45:10
А что в этом графе будет?

Vasily
05.04.2018
16:45:40
Но чтобы билдеры не знали, куда и как, а просто имели информацию о типе

В графе фактически последовательность записи/чтения типа

Vasily
05.04.2018
17:29:46
О рефлексии думал, но пока неясно, поможет ли это задачу решить

В целом, квотейшны могут помочь для скрытия информации о типе

Потому как если врайтер можно спрятать за 'ctx->unit,то с ридером надо что - то думать

Ибо 'ctx->'a

Google
Vasily
05.04.2018
17:33:47
Ну и чтение на конкретные типы завязано

Daniel
05.04.2018
17:34:51
Можно портировать в слоты и читать/писать в них. Как-то раз хотел сделать https://m.habrahabr.ru/post/229035/

Igor
05.04.2018
17:38:46


ну для начала могу предложить пример из кое-какой книги:

если что, книга об AspNetCore

Vasily
05.04.2018
17:55:00
Данный пример тут не особо поможет, к сожалению

В целом, статья на Хабре навела на определённые размышления, проблема только в том, что там подход основан на erased types,похоже

И можно в рантайме один тип другим подменить

Igor
05.04.2018
18:03:32
А что за книга
хмм... а я так сразу не скажу. Книжке вроде 2-3 года, она писалась еще на первый .Net Core, примеры там на C#

Vasily
05.04.2018
18:07:15
Смотрел FsPickler?
Угу, в целом похоже на то, что хочется, так что, может, в итоге его заюзаю

Evgeniy
05.04.2018
18:08:23
Там есть пример с сериализацией в Json. https://github.com/eiriktsarpalis/TypeShape/blob/master/samples/json-serializer.fsx

И еще презентация про реализацию библиотеки. Existential types, rank-n polymorphism. Все то, чего нет в F#. %) https://eiriktsarpalis.github.io/typeshape/

@vshapenko Видел же?

Vasily
05.04.2018
18:13:25
Ну вот про existential types пока не видел

Вопрос, кстати - что это за грязный трюк?https://github.com/eiriktsarpalis/TypeShape/blob/master/samples/json-serializer.fsx#L254

Страница 539 из 772