
Friedrich
10.10.2017
13:36:04
Надо сделать настоящие! Давайте пилить провайдеры!

Evgeniy
10.10.2017
13:38:06

Friedrich
10.10.2017
13:38:13
Чтобы по JSON Schema генерировал типы.

Google

Evgeniy
10.10.2017
13:38:38
Давай сделаем.

Friedrich
10.10.2017
13:39:04
https://github.com/jet/JsonSchemaProvider

Vasily
10.10.2017
13:39:09
Не надо по JSON Schema

Evgeniy
10.10.2017
13:39:17

Friedrich
10.10.2017
13:39:19

Evgeniy
10.10.2017
13:39:45

Nikolay
10.10.2017
13:39:48
Или вообще JSON парсер
Который будет парсить DU нормально
Без всяких __case

Vasily
10.10.2017
13:40:16
Буквально сегодня статью видел

Google

Vasily
10.10.2017
13:40:29
С интересным подходом к данной проблеме

Friedrich
10.10.2017
13:40:45
Ага, в F# Weekly была статья про JSON.

Evgeniy
10.10.2017
13:41:08

Friedrich
10.10.2017
13:41:15
Да.

Evgeniy
10.10.2017
13:41:20
А, Functional JSON.

Nikolay
10.10.2017
13:42:15
Мне надо DU парсить
И ещё уметь option

Evgeniy
10.10.2017
13:42:47
Где?
Json.NET + FSharpLu.Json?

Nikolay
10.10.2017
13:43:41

Evgeniy
10.10.2017
13:43:52
> For example the value [Some 5; None; Some 6] gets serialized to just
val it : string = "[ 5, null, 6 ]"
@Dolfik ^
https://github.com/Microsoft/fsharplu/wiki/FSharpLu.Json

Nikolay
10.10.2017
13:45:06
А десериализацию?
И более сложных кейсов

Evgeniy
10.10.2017
13:45:38
Попробуй, потом расскажешь.

Nikolay
10.10.2017
13:46:00
https://github.com/Dolfik1/Funogram/blob/master/Funogram/Types.fs#L685

Google

Nikolay
10.10.2017
13:46:02
Такое)

Evgeniy
10.10.2017
13:47:01
Где?
Utf8Json + FSharpExtensions?
Но тут документации маловато пока.
Смотри, я тебе уже две библиотеки про Json нашел!
https://blog.jetbrains.com/dotnet/2017/10/10/f-support-improvements-rider-2017-2/
> It’s now possible to work with .NET Core F# projects, for both SDK 1.0 and 2.0. This was one of the missing features from Rider 2017.1 which is now resolved.
Нужно бы заценить сегодня.
Читать json value { ... } приятнее, чем операторы в Chiron. :)

Friedrich
10.10.2017
14:27:19

Nikolay
10.10.2017
14:27:41

Evgeniy
10.10.2017
14:28:02

Friedrich
10.10.2017
14:30:10
Может, в тулбокс просто обновление не положили ещё? Я всегда на последней EAP сижу, а .NET Core не очень хорошо работал...

Pavel
10.10.2017
15:27:46

Evgeniy
10.10.2017
16:30:28

Pavel
10.10.2017
16:33:42
Мне понравилоась

Evgeniy
10.10.2017
16:34:08
Спасибо!
Привет.

KeyZ
10.10.2017
18:02:27
Привет. Нашел Ваш канал на Хабре)

Google

Artemy
10.10.2017
18:08:28
О, а где он там был?

Evgeniy
10.10.2017
18:08:45

Artemy
10.10.2017
18:08:54
А, точно
Интересно, сколько человек сюда пришло по ссылке оттуда

Evgeniy
10.10.2017
18:11:29
Привет!

Roman
10.10.2017
18:11:31
Привет! Какими судьбами?

Летучая
10.10.2017
18:12:53
Привет! Не подскажете, можно ли делать кастомные операторы объявления списка? А то писать
Parent(Children=([Child(Title="Hi")] |> List<_>))
больновато :(
Нужен интероп с C# просто.

Evgeniy
10.10.2017
18:14:55

Летучая
10.10.2017
18:16:35

Evgeniy
10.10.2017
18:16:59
И что из них хочется получить?

Летучая
10.10.2017
18:17:56
class Parent {
List<Child> Children { get; }
}
class Child {
string Title { get; }
}

Evgeniy
10.10.2017
18:19:10
Просто красивый конструктор нужен?

Летучая
10.10.2017
18:21:36
Просто красивый конструктор нужен?
Чтобы можно было как-нибудь инлайново объявить дерево.
let dataset =
[ Parent(Children=
[ Child(Title="Foo");
Child(Title="Boo")]);
Parent(...) ]

Evgeniy
10.10.2017
18:22:03
Понял. Мне нужно сделать чай.

Летучая
10.10.2017
18:23:27

Evgeniy
10.10.2017
18:23:28
Простой вариант — сделать функцию parent, которая принимает F# список детей и преобразует внутри в List<>.

Google

Evgeniy
10.10.2017
18:26:48
Соответственно, функции category, channel, article.
Сложные конструкторы переносишь в простые функции. Должно получиться что-то по типу DSL для описания веб-интерфейса.

Летучая
10.10.2017
18:34:37

Evgeniy
10.10.2017
18:35:54
Мне все еще нужен чай!

Roman
10.10.2017
18:42:02
https://m.habrahabr.ru/post/339592/

Artemy
10.10.2017
18:42:45
Только ни одного фрагмента кода на F#

Igor
10.10.2017
18:43:36

Artemy
10.10.2017
18:43:50
Действительно

Evgeniy
10.10.2017
19:41:48
http://blog.ploeh.dk/2017/10/10/strings-lists-and-sequences-as-a-monoid/

Artemy
10.10.2017
21:45:13
Проверьте, пожалуйста, перевод, кто может и кому не лень:
https://github.com/fsharplang-ru/translations/pull/29

Roman
10.10.2017
21:51:23
Я заметил странную штуку: если при объявлении типа record фигурную скобку оставить на одной строке с '=', то на ключевое слово interface компилятор почему-то ругается:
type EmployeeUpdatedEvent = {
id:int
time:DateTime
position:string }
interface IEvent with
member x.Id = x.id
member x.Time = x.timeпричем если перенести скобку на следующую строку или убрать интерфейс, то компилится нормально.
Кто-нить знает, в чем дело?

Artemy
10.10.2017
21:52:57
Наверное, потому что отступы у содержимого записи меньше, чем у начальной фигурной скобки
Хотя не. Я, вроде, и сам фигурную скобку на одной строке с = ставил
А если интерфейс передвинуть на один уровень с начальной фигурной скобкой или дальше?

Vlad
11.10.2017
05:21:03
@Dolfik у тебя апи телеграмма к ф# живое?