
Anton
28.05.2017
15:19:03
ну да ладно, читаю значит дальше книгу =)

Летучая
28.05.2017
15:20:19

Anton
28.05.2017
15:40:54

Nikolay
28.05.2017
16:12:58
Я в глаза долблюсь, или как

Google

Nikolay
28.05.2017
16:13:02
{"y":{},"z":["xyz","zyx"]}
Что не так с этим JSON?
Unexpected end when deserializing object.

Friedrich
28.05.2017
16:14:18
С этим JSON всё в порядке.

Aleksander
28.05.2017
16:16:40
Каких-нибудь невидимых символов в конце нет?

Nikolay
28.05.2017
16:18:41
Хотя эта библиотека всё равно не умеет DU конвертить
А в F# наследования записей нет?

Vagif
28.05.2017
17:56:41
Нет

Igor
28.05.2017
17:59:46

Nikolay
28.05.2017
18:45:38
Ну типа если есть 20 записей, и у них 4 поля повторяются, нужно для каждой прописывать?

Roman
28.05.2017
18:48:57
Можно использовать вложенные записи - выносите общие поля в тип (если они логически объединены) и радуетесь. Или обычные классы

Igor
28.05.2017
20:38:09
Как в F# проверить что что-то НЕ равно null, без паттернматчинга?
На X <> null компилятор ругается, что устарело.

Google

Летучая
28.05.2017
21:00:54

Nikolay
28.05.2017
21:03:52
Наверное так
Funogram уже наверное больше 2к строк
Записи для инлайн режима в 500 строк вышли ?

Igor
28.05.2017
21:07:30
not isNull(X)
Странно у меня vscode как раз на этот код ругался (по этому и пришел с вопросом).

Nikolay
28.05.2017
21:07:58
if not (isNull X) then
Вот так надо

Roman
28.05.2017
21:08:57

Igor
28.05.2017
21:08:58

Roman
28.05.2017
21:09:30

Nikolay
28.05.2017
21:09:50

Roman
28.05.2017
21:10:02

Igor
28.05.2017
21:12:06

Roman
28.05.2017
21:12:32
Ура! Я посмотрел "болл он хилл!"

Nikolay
28.05.2017
21:13:35
Не понял
https://github.com/Microsoft/visualfsharp/issues/1496#issuecomment-244315047
Вот их ответ
Короче, я думаю ещё долго их ждать

Google

Roman
28.05.2017
21:17:12

Igor
28.05.2017
21:17:55
Ура! Я посмотрел "болл он хилл!"
А Марка Симана (у него вроде оригинал болонхил)?
https://youtu.be/US8QG9I1XW0
https://youtu.be/cxs7oLGrxQ4
https://youtu.be/Ux5wUSOsEfc

Nikolay
28.05.2017
21:18:08
Спасибо.
А мб тогда сделать на .net standard 2 Alfa/beta?
re-architect the fundamental F# compiler API used by type providers to no longer use any F# quotations or any extensible reflection (inheriting from Type/MethodInfo/FieldInfo/... types). While this would be architecturally cleaner and more independent in many ways, it is also a big undertaking, and would require significant corresponding changes to the ProvidedTypes programming model for authoring type providers. This model uses extensible reflection in many places, e.g. here and here
Они пока сейчас это допилят, потом пока перепишут тайп провайдеры, потом пока пофиксят баги, пройдёт год)

Roman
28.05.2017
21:20:24

Nikolay
28.05.2017
21:23:27
Но я могу ошибаться :)
.Net Core развивается и быстро и в то же время медленно :)

Летучая
28.05.2017
21:27:03

Nikolay
28.05.2017
21:27:52
Это тот момент, когда короче - круче ?

Летучая
28.05.2017
21:29:03
let notNull x = x |> isNull |> not
if notNull x then
Шах и мат

Nikolay
28.05.2017
21:29:37
Или теперь добавь это в стандартную библиотеку :)

Летучая
28.05.2017
21:30:11
[AutoOpen]
module Tools

Nikolay
28.05.2017
21:30:38
if x <> null then
Шах и мат :)

k0balt
28.05.2017
21:31:00

Летучая
28.05.2017
21:31:05

Nikolay
28.05.2017
21:32:03
Правда, не знаю зачем они так усложнили, типа функциональнее что-ли

Google

Roman
28.05.2017
21:32:46

k0balt
28.05.2017
21:33:05

Friedrich
29.05.2017
04:34:56
Да и то, там переменную пришлось вводить из-за того, что резко приключился monomorphism restriction :(
Жалко, что в CLI нельзя делать generic-полей.

Evgeniy
29.05.2017
05:14:37
@fvnever А хочется? Для чего?

Friedrich
29.05.2017
05:15:08
Без этой фишечки жить, безусловно, можно. Это не то чтобы очень большое преимущество :)

Evgeniy
29.05.2017
05:17:10
@fvnever Я про реализацию. Как бы это выглядело с generic-полями?

Friedrich
29.05.2017
05:18:25
Буквально вот так и выглядело бы. Я бы хотел, чтобы let notNull = not << isNull компилировалось в генерик-поле или генерик-переменную (которую можно всё равно свести к генерик-полю) типа FSharpFunc<T, bool> where T : class.
Впрочем, меня бы устроило, если бы оно компилировалось и как let notNull x = (not << isNull) x, но это несколько частное решение.


Pawel
29.05.2017
05:27:47
Я бы не стал использовать System.IO.BinaryFormatter для таких зажач, где размер имеет значение. Скорее даже вообще не стал бы использовать его в качестве сериализатора. Используй ASN.1, Protobuf, FsPickler

Friedrich
29.05.2017
05:29:08

Pawel
29.05.2017
05:33:29

Nikolay
29.05.2017
05:37:43

Pawel
29.05.2017
05:38:06

Friedrich
29.05.2017
05:38:17

Nikolay
29.05.2017
05:39:14

Google

Pawel
29.05.2017
05:43:05
В любом случае. Структуры данных F# (рекорды, DU, списки, мапы, множества и т.п.) не могут быть null, как и структуры net. null - это только boxed объекты, и они представляют из себя ссылки, а не значения.
Хотя если получить десериализованный объект из какой-нибудь глуповатой json.net, то он запросто будет null
если был сериализован не так, как ей надо

Roman
29.05.2017
05:47:10

Pawel
29.05.2017
06:13:35
ну и в общем случае ASN.1 - гостированный язык описания данных, и по умолчанию надо брать всегда его

Roman
29.05.2017
06:28:55

Pawel
29.05.2017
06:29:59
https://ru.wikipedia.org/wiki/ASN.1

Evgeniy
29.05.2017
06:47:30
https://github.com/Microsoft/visualfsharp/pull/3116
Смотрите ка, JetBrains подключились контрибьютить в visualfsharp.

Pawel
29.05.2017
06:52:53
О, они этим славтся. Уже mono починили по ходу пьесы, исправили там пачку хардкорных багов

Anton
29.05.2017
07:29:59
@nevoroman очень вдохновился твоим выступлением про data science. Ты там упоминал о том, что использовал sqlProvider в качестве "ORM" через либу написанную на F#, подключая её в C#. А такой вопрос - у меня вот есть mongoDB. Там, как я понял, BsonProvider я смогу использовать как ORM для монги ?
Нашел вот такую статью, но не совсем понял смысл.
https://www.mongodb.com/blog/post/enhancing-the-f-developer-experience-with-mongodb

Vasily
29.05.2017
07:31:21
Кстати, по поводу сериализаторов. Есть еще https://github.com/ServiceStack/ServiceStack.Text

Evgeniy
29.05.2017
07:43:23
@the_RAMZAY А BsonProvider умеет подключаться к Mongo?

Anton
29.05.2017
07:43:40
@gsomix вот этого я не знаю.
точно знаю, что к bson файлам может =)
http://visemet.github.io/FSharp.Data.Bson/library/BsonProvider.html

Evgeniy
29.05.2017
07:44:27
Да, только обычные bson файлы умеет.

Pawel
29.05.2017
07:44:55

Evgeniy
29.05.2017
07:45:22
Это древняя статья.