
Artemy
13.03.2018
07:49:49
Ладно, если не "очень не хватает", то хотя бы просто в некоторых случаях думаешь, что могли бы пригодиться.

Evgeniy
13.03.2018
07:50:57

Vlad
13.03.2018
07:51:21

Google

Evgeniy
13.03.2018
07:51:26
Что должно быть.
let inline getX (x: ^TX) : ^X =
(^TX : (member get_X : unit -> ^X) (x))
getX {| X = 0 |}
getX {| X = 1; Y = "abc" |}
getX {| X = 2; Y = "2" |}

??
13.03.2018
08:00:18

Pavel
13.03.2018
08:01:21

Evgeniy
13.03.2018
08:01:40

Pavel
13.03.2018
08:01:50
анонимные рекорды

Evgeniy
13.03.2018
08:01:59
Когда они были?

Pavel
13.03.2018
08:02:21
давно.. в DU

Evgeniy
13.03.2018
08:02:35

Pavel
13.03.2018
08:04:13
по факту тоже самое. то что щас это предоставляется в немного другой обертке существенной роли не играет

Evgeniy
13.03.2018
08:05:59

Pavel
13.03.2018
08:10:06

Roman
13.03.2018
08:11:28

Google

Evgeniy
13.03.2018
08:13:15

Roman
13.03.2018
08:14:19
Да.
Огонь. Раньше пробовал подобное, только без префикса get_, и очень расстроился)

Evgeniy
13.03.2018
08:16:34

Roman
13.03.2018
08:17:03
Оооо! HR в чате! Победа!!
Привет!

Александра
13.03.2018
08:18:04

Evgeniy
13.03.2018
08:18:21
Я что-то затупил и не перенес сообщение в @microsoftstackjobs. Ну, ладно.

Roman
13.03.2018
08:19:32

Andrey
13.03.2018
08:22:06
по поводу большого объема данных на клиенте - бывает необходимость в enterprise приложениях, когда, например, есть требование работы в offline и выдача какой-то информации, например, последних остатков по всем товарам, или какие-то их характеристики. в этом случае на мобильном приходится хранить весь каталог товаров
по поводу EF - я пробовал, остановился на Type Providers - мне так удобнее
хотя, если нужно что-то не стандартное - найти информацию на порядок сложнее, чем в EF
и это минус TP

Александра
13.03.2018
08:23:16

Evgeniy
13.03.2018
08:26:17

??
13.03.2018
08:26:36

Andrey
13.03.2018
08:27:04
это не столько Big Data, сколько справочная информация
которой действительно может быть несколько гигабайт
как правило потребность в ней возникает тогда, когда есть требование работы с ней в offline

Pavel
13.03.2018
08:28:38

Google

??
13.03.2018
08:29:07

Evgeniy
13.03.2018
08:29:50

Pavel
13.03.2018
08:30:27
там копеечная просадка. по сравнению с запросом в 500 мс к локальной базе ее невозможно заметить

Vasily
13.03.2018
08:32:21
Интересно, с каких пор HR интересуются f#
Хотя лестно, да

Pavel
13.03.2018
08:33:14
Ты видел зарплаты?! HR получает процент от найма.
Поэтому и стремятся в чаты самых успешных программистов

Vasily
13.03.2018
08:33:59
правда, вакансия, которую девушка опубликовала в соседнем чатеге, она про dba , причем оракловский

Siarhei
13.03.2018
08:34:09

Vasily
13.03.2018
08:34:16

Pavel
13.03.2018
08:34:40
А это уже сексизми и гендерное неравентво! Фу таким быть.

Vasily
13.03.2018
08:35:16

Evgeniy
13.03.2018
08:35:51
Давайте с оффтопом в @dotnettalks. // вы ждали, когда я это скажу

Александра
13.03.2018
08:38:00

Pavel
13.03.2018
08:38:15
Я тоже, помогайте мне.

Александра
13.03.2018
08:38:38

Pavel
13.03.2018
08:39:40

Александра
13.03.2018
08:40:22

Siarhei
13.03.2018
08:41:07

Google

Александра
13.03.2018
08:43:40

Evgeniy
13.03.2018
08:48:43

??
13.03.2018
08:50:52
Покажите!
Предательская скорость работы интернет. Сравнение по typeid? Это было в какой-то статье, которую пока не смог найти, не помню, добавлял ли в закладки дома в браузере. Разницу в цифрах показало на уровне страха использования юнионов (в циклах), но, спасибо, отлегло.

Evgeniy
13.03.2018
08:52:12
Ну, объединений точно не нужно боятся. Это чуть ли не главная фича F#. :)

Vasily
13.03.2018
08:53:45
Я бы сказал, не стоит заниматься premature optimizations

Pavel
13.03.2018
08:54:09
главная фича - pattern matching . без нее эти объединения неинтересны

Pavel
13.03.2018
08:55:21
Интересны. Мне вот сейчас приходится их выдумывать, чтобы отдать стрим событий
я готов иф и свичи писать, только чтобы не object/dynamic возвращать, как мне тут архитектор рекомендует
(и да, пишу на c#, unfortunately)

Pavel
13.03.2018
08:58:08

Pavel
13.03.2018
08:58:30
Зачем C#, если сразу F# можно?

Pavel
13.03.2018
08:59:46

Pavel
13.03.2018
08:59:49
Если F# нельзя, то такой трюк не пройдет.
Тут логичней взять какой-нибудь protoc и им контракты сконпилировать в C# - protobuf поддерживает discriminated unions
И не так страшно для C#-шопов

??
13.03.2018
09:01:42

Pavel
13.03.2018
09:03:13
Есть у тебя биржа, с API web-socket
Оно тебе JSON-ом сыплет туда разнородным, а тебе IEnumerable (для простоты) по нему надо сделать
Какой тип под IEnumerable будет?
type Message = Connected of Connected | Authenticated of Authenticated | ...

Google

Pavel
13.03.2018
09:05:27
Это самый понятный пример, на мой взгляд (я про Choice / Option не буду тут писать, тем кто из C# приходит не сразу понятно, о чем речь)

Vasily
13.03.2018
09:06:58

??
13.03.2018
09:07:01

Vasily
13.03.2018
09:07:12
И на c# ты эту проблему тоэже не очень решишь

Pavel
13.03.2018
09:07:14

Vasily
13.03.2018
09:07:24

Pavel
13.03.2018
09:07:38
Ну а что правильно? На мой взгляд - DU правильно выплевывать.
Я как раз про семантику этого "сериализатора" говорил, а не про реализацию
На C# приходится выплевывать Object / IMessage и дальше проверять через C#-паттернматчинг
if (msg is Authenticated auth) { ... }

Vasily
13.03.2018
09:11:19
Вообще, если говорить о решении подобного рода задач на C# и на F#, то требования к данным несколько другие

Pavel
13.03.2018
09:11:43
Давай поговорим об этом.

Siarhei
13.03.2018
09:11:58

Pavel
13.03.2018
09:12:12