@Fsharp_chat

Страница 175 из 772
Nikolay
29.05.2017
11:04:08
Они вроде отказались от рефлексии и quotations в тайп провайдерах

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
29.05.2017
11:04:47
про F# вот что интересно и показательно. Взять типичную область применения net (виндовз десктоп WF, WPF, asp net mvc 4) и показать на примере реального энтерпрайзного проекта на C# и F#, какие профиты даёт F#, что код короче и понятнее получается
Такой когда-нибудь будет, но в формате DotNext не хочу делать еще один Intro доклад, хочется хардкору. Потому и провайдеры типов, собственно - там много вкусных технических деталей. А такой я рано или поздно сделаю на митапе SPB .NET Community

Evgeniy
29.05.2017
11:11:46
@Dolfik Кто отказался?

Google
Nikolay
29.05.2017
11:12:33
https://github.com/Microsoft/visualfsharp/issues/1496#issuecomment-244315047

Pawel
29.05.2017
11:13:10
Ну писать имена переменных в F# через snake_case такое себе дело
если апи серверка snake_case, то делать F# типы с полями camelCase или чем-то подобным, и потом в ручную ковертить их в snake_case - это совсем не дело имхо.

Roman
29.05.2017
11:13:44
Оп, упру эти проблемки в доклад про провайдеры типов ?

Evgeniy
29.05.2017
11:14:07
@Dolfik Это просто обсуждение возможных вариантов.

Nikolay
29.05.2017
11:14:38
Он имеет ввиду мы можем типа либо ждать 2.0, либо перепилить без использования этой дичи

Evgeniy
29.05.2017
11:15:09
Да.

Nikolay
29.05.2017
11:15:27
Но с другой стороны, типа получится круче и чище :)

Evgeniy
29.05.2017
11:15:45
Или не получится. Для этого нужны руки, а их нет. :)

Nikolay
29.05.2017
11:16:14
Или не получится. Для этого нужны руки, а их нет. :)
Руки есть всегда, просто некоторые руки слишком ленивы)

Вон @neftedollar предлагал вчера тайп провайдеры под кор портировать)

Vasily
29.05.2017
11:20:15
Код интересный. fparsec, вот это вот все...

Roman
29.05.2017
11:21:51
Оп, упру эти проблемки в доклад про провайдеры типов ?
https://github.com/jet/JsonSchemaProvider вот недоделанный и как мне кажется полезный тайппровайдер.

Google
Roman
29.05.2017
11:25:24
Принял, тоже поюзаю, спасибо
Еще выше писали про BSONTypeProvider , как мне кажется монго очень хорошая аналитическая бд, если бы можно было по jsonSchema верифицировать BSON, то возможно было бы можно опрашивать монгу, есть мысли на этот счет?

Roman
29.05.2017
11:27:46
Еще выше писали про BSONTypeProvider , как мне кажется монго очень хорошая аналитическая бд, если бы можно было по jsonSchema верифицировать BSON, то возможно было бы можно опрашивать монгу, есть мысли на этот счет?
Еще интеренсо, что Монга ипользует js, а у нас по счастливому стечению обстоятельств есть fable, скоро закроют issue который позволит генерировать js без webpack бойлерплейт-кода и тогда ему пряма дорога в типизированный map reduce на монге)

Vasily
29.05.2017
11:28:38
Хммм... читаю тут код SqlCommandProvider

Roman
29.05.2017
11:28:48
Звучит как интересное демо! Посмотрю

Vasily
29.05.2017
11:28:50
Они очень прикольно валидируют набор параметров

Через хранимку

Roman
29.05.2017
11:32:19
Через хранимку
а можешь дать ссылку на хранимку?

Vasily
29.05.2017
11:32:37
sys.sp_describe_undeclared_parameters

Точнее, эта хранимка дает список недообъявленных, как я понял

А для остального у них TSqlParser

Evgeniy
29.05.2017
11:33:56
@nevoroman Вот бы кто PythonProvider оживил. :) https://github.com/fsprojects/FSharp.Interop.PythonProvider

Vasily
29.05.2017
11:34:11
Оживи, я в питоне ничего не понимаю :)

Roman
29.05.2017
11:36:05
Собственно, я им сейчас и занимаюсь :)

Nikolay
29.05.2017
11:36:42
А в соль питон провайдера?

Google
Nikolay
29.05.2017
11:37:01
Я бы за Json провайдер был благодарен)

Roman
29.05.2017
11:37:09
А в соль питон провайдера?
ну вот поставил ты tensorflow и скормил ей свои данные из fsharp)

Vasily
29.05.2017
11:37:13
А вот TSqlParser штука интересная.

Roman
29.05.2017
11:37:15
В миллионе питоновских ds либ?

Все то же самое, что и с R провайдером

Roman
29.05.2017
11:37:55
Собственно, я им сейчас и занимаюсь :)
В публичной части интеренета?

Roman
29.05.2017
11:38:19
Пока что "занимаюсь" заключается в том, что я ковыряю уже имеющееся

На выходных только начал

Roman
29.05.2017
11:38:40
Roman
29.05.2017
11:39:00
Но как займусь развитием - буду коммитить в уже имеющийся репозиторий. Ну или форкну

Vasily
29.05.2017
11:39:06
Я бы за Json провайдер был благодарен)
Так можно по идее в FSharp.Data который допилить до мутабельности

Vasily
29.05.2017
11:42:24
Ну пока нет, как я понимаю

Anton
29.05.2017
11:44:00
@nevoroman вот да, интересно было бы наладить мост между монгой и F# через тайп провайдер. Выше я кидал. Оно как-бы близко к монге, но нет коннекшена и т.д. http://visemet.github.io/FSharp.Data.Bson/library/BsonProvider.html

@neftedollar интересная мысль по поводу js, fable и mongoDB. Стоит задуматься об этом.

А, ну и да. Интересно послушать про то, как эти првайдеры работают, с чем их едят и как написать свой.

@nevoroman Я смотрел твой доклад и такой "Эээ, ок, тайп провайдер это круто, очень круто... Но как оно вообще работает 0_о. Как ему удаётся делать эти типы налету."

Roman
29.05.2017
11:50:30
А, ну и да. Интересно послушать про то, как эти првайдеры работают, с чем их едят и как написать свой.
Ну примерно про это и планируется доклад. А с отдельными провайдерами планирую поковыряться для добавления практичности кейсам, да и вообще более глубокого погружения в проблему. В том докладе да, так оно и вышло. Потому что объяснять механику работы можно либо быстро и тогда все равно непонятно, либо долго и тогда в тайминг не влезает, плюс грузит. Так что в общеобзорном докладе обошёлся описанием в формате "пуф, и магия!"

Anton
29.05.2017
11:51:58
@nevoroman угу, понимаю, время. Сам недавно в универе на докладе по .net evolution был. Дали всего 10 минут, успел только до 4.5 расказать и в безумно сокращенной форме. =(

Roman
29.05.2017
11:53:26
А тайппровайдеры могут не генририровать типы, а генерировать только ф-ции? Например хочу сделать тайппровайдер из LaTeX формул в исполняемые F# ф-ции, такое возможно?

Google
Anton
29.05.2017
11:54:04
О, а это интересно! Нарисовал формул, и используешь в коде. Удобно!

Roman
29.05.2017
11:57:01
Ух. Пока не знаю, но скоро разберусь. Займешься - опенсорсь и зови помогать, полезная штука выйдет.

Roman
29.05.2017
11:57:44
Хотя тут похоже на обычное отображение
Спарсил формулу и сопоставил что значок \sum это #Seq.sum

Vasily
29.05.2017
11:58:36
Спарсил формулу и сопоставил что значок \sum это #Seq.sum
Не проще ли на Expr сделать тогда + fparsec?

Roman
29.05.2017
11:59:39
Anton
29.05.2017
12:02:00
стоооп, что-то с latex помню @fvnever делал.

там что-то связано с wpf и LaTeX было

Может он что подкинет из своих наработок на эту тему.

Vasily
29.05.2017
12:02:47
Там скорее задача отображения

Evgeniy
29.05.2017
12:04:58
@neftedollar Ты можешь генерировать типы с методами.

Roman
29.05.2017
12:05:45
@nevoroman тут подсказывают ещё про olap кубы. Вернусь к компу посмотрю есть ли уже такие тайппровайдеры

Roman
29.05.2017
12:13:41
Угу, записал

Vasily
29.05.2017
12:14:24
Есть еще извращения типа OdataProvider, но он неюзабелен

Т.к. не поддерживает аутентификацию

Evgeniy
29.05.2017
12:15:04
@neftedollar Внутри методов можно составлять любые выражения с помощью Expr.

Не очень приятная работа.

Roman
29.05.2017
12:15:35
Google
Nikolay
29.05.2017
12:19:12
А тайп провайдеры это магия фшарп компилятора онли?

В сишарпе нет такого?

Vasily
29.05.2017
12:19:50
Нет, в с# нет. Ближайший аналог, по идее - t4

Т.е. кодогенерация

Anton
29.05.2017
12:21:59
@Dolfik с языка стащил :D

А есть тайпПровайдеры в хаскеле и скалле ?

Friedrich
29.05.2017
12:23:35
А тайппровайдеры могут не генририровать типы, а генерировать только ф-ции? Например хочу сделать тайппровайдер из LaTeX формул в исполняемые F# ф-ции, такое возможно?
У нас там, вон, валяется парсер LaTeX на сишарпе. Хотим его прикрутить к wpf-math когда-нибудь: https://github.com/ForNeVeR/mathtexdotnet

Evgeniy
29.05.2017
12:24:05
@the_RAMZAY Есть прототипы. Но в скале и хаскеле есть вещи покруче — макросы.

Friedrich
29.05.2017
12:24:09
А, ну и, если кто не видел, wpf-math: https://github.com/ForNeVeR/wpf-math (LaTeX-формулы рендерит в WPF)

Anton
29.05.2017
12:24:32
@gsomix круче? Куда уж круче уже? Оно ещё кофе готовить умеет с круасанами ?

Evgeniy
29.05.2017
12:24:45
@fvnever Ты хотел сказать, парсер LaTeX на F#.

Friedrich
29.05.2017
12:24:55
Evgeniy
29.05.2017
12:25:05
@fvnever Предлагаю поправить сообщение. :)

Igor
29.05.2017
12:25:06
А можно как-то использовать переменные окружения при импоритирование библиотек через #r?

Friedrich
29.05.2017
12:25:28
Evgeniy
29.05.2017
12:25:31
@fvnever Или там только тесты?

Friedrich
29.05.2017
12:26:00
Там только прослойка на F#. Алекс ещё в 2010 году был уже Ъ и педалил на F#, когда я ещё в детский сад ходил :)

Anton
29.05.2017
12:26:17
@fvnever кстати, а что по поводу игры? Как оно вообще пишется то ? А то я не малейшего представление - как с этим работать =)

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