@Fsharp_chat

Страница 357 из 772
Evgeniy
11.10.2017
05:49:36
@fvnever Удалось вчера посмотреть свежий EAP?

Friedrich
11.10.2017
06:32:20
@fvnever Удалось вчера посмотреть свежий EAP?
Мне чёт кажется, что нету никакого свежего EAP.

Это про предыдущий написали, который вышел 29 сентября.

Google
Friedrich
11.10.2017
06:33:06
Но я попробую им попользоваться более часто. Раз уж официально заявляют, что есть поддержка для неткора 2.0 — я буду репортить баги, если найду, что что-то не работает.

Evgeniy
11.10.2017
06:33:25
Хорошо.

Friedrich
11.10.2017
06:33:44
Вчера я им открыл проект, и сразу после загрузки ничего не отломалось. Может, и правда уже всё починили :)

Evgeniy
11.10.2017
06:33:54
Я еще надеюсь, что там mixed C# and F# projects работают лучше, чем в VS.

Friedrich
11.10.2017
06:34:24
Evgeniy
11.10.2017
06:34:41
А они даже в релизе хорошо работают.
GoToDef работает туда-обратно?

Friedrich
11.10.2017
06:34:45
Ага.

Evgeniy
11.10.2017
06:34:49
Ух!

И правда, хорошо. Потому что в VS работает только из F# в C#.

https://twitter.com/Thoriumi/status/917906515859791873

Nikolay
11.10.2017
08:58:43
https://twitter.com/Thoriumi/status/917906515859791873
SQL Provider не нужен, Rezoom.SQL - нужен

Evgeniy
11.10.2017
08:58:53
Привет!

Vasily
11.10.2017
08:59:06
Это какой-то флудер

Google
Vlad
11.10.2017
08:59:58
Ребят, как переименовать скомпилированную программу Visual Studio?

Чтоб потом проект выполнялся без ошибки?

Evgeniy
11.10.2017
09:01:12
Enhed
11.10.2017
09:17:05
А можно как-то нагенеренные типы через провайдер использовать в C#?

Nikolay
11.10.2017
09:17:24
Erased - нет

Evgeniy
11.10.2017
09:30:16
Friedrich
11.10.2017
09:31:33
Я сегодня попробую написать свой тестовый провайдер, чтоб было на чём проверять потом.

Enhed
11.10.2017
09:34:15
Ты посмотрел JsonSchemaProvider, кстати?
Мельком, пока еще времени особо не было. Я думал эта штука JsonProvider справится с моей задачей. Я где-то на конфе .next вроде услышал как Сошников сказал, что он может нагенерить этих типов и в C# юзать, может мне конечно послышалось или он ошибся

Friedrich
11.10.2017
09:38:50
Я не совсем понимаю, что это значит)
Ну, это значит, что Сошников не обманывал, но мог нечаянно ввести в заблуждение.

Artemy
11.10.2017
09:41:43
Недостатки Generative-провайдеров в том ,что их сложнее писать и они медленнее работают, так?

Evgeniy
11.10.2017
09:42:18
Просто generative-провайдеры сами сложнее. :)

Наверное, они влияют на скорость компиляции. Но я не бенчмаркал никогда.

Artemy
11.10.2017
09:47:03
Ну просто скорость — получается, единственная веская причина не писать generative-провайдеры всегда.

Google
Artemy
11.10.2017
09:48:28
Ну так а я о чём

Evgeniy
11.10.2017
09:48:46
@artemy_b Есть, наверное, пара вещей, которые делают erased интересными в некоторых задачах: 1. С помощью erased-провайдеров можно "генерировать" бесконечные типы. 2. Обращаться к erased-провайдеру можно прямо на месте, не объявляя предварительно тип.

Artemy
11.10.2017
09:49:56
> бесконечные типы Например?

Чтобы понимать точно, о чём речь

> Обращаться к erased-провайдеру можно прямо на месте, не объявляя предварительно тип. И такого, вроде, тоже не пробовал.

Friedrich
11.10.2017
10:14:04
Ну просто скорость — получается, единственная веская причина не писать generative-провайдеры всегда.
Сейчас ещё сгенерированный код в таких провайдерах будет работать медленно.

Код в обычной сборке (или полученный после применения erased-провайдера) проходит оптимизацию компилятором F#, который со своей работой справляется неплохо.

А код из generative-провайдеров, как мы теперь понимаем, этой оптимизации не подвержен.

Задача провайдера — реализовывать этот код оптимально.

Evgeniy
11.10.2017
10:15:51
> бесконечные типы Например?
У меня на примете есть только безумные примеры. http://bit.ly/2wNI5lo

Friedrich
11.10.2017
10:16:55
Это у PeziPink безумные примеры :)

Evgeniy
11.10.2017
10:17:42
Да.

А код из generative-провайдеров, как мы теперь понимаем, этой оптимизации не подвержен.
Я правильно понимаю, что весь код из quotations просто переносится в сборку без оптимизаций?

Или все-таки при компилации провайдера происходит частичная оптимизация?

Friedrich
11.10.2017
10:19:44
Я правильно понимаю, что весь код из quotations просто переносится в сборку без оптимизаций?
Мне кажется, что это неверно. Но надо проверять, наверное :)

Evgeniy
11.10.2017
13:27:46
https://github.com/Microsoft/visualfsharp/pull/3729

Пир
11.10.2017
15:25:23
Почему в fsharpforfunandprofit пишут, что математическая функция может иметь только один аргумент? Есть же функции нескольких переменных. Да и в любом случае можно трактовать пару аргументов как один обьект типа "пара" и строить отображение нормально. Понятно что все сделано для каррирования, но зачем писать то такое.

Aleksey
11.10.2017
15:27:15
С точки зрения лямбда-исчисления все функции - унарные. Мультиарность - синтаксический сахар

> все сделано для каррирования Нет. Каррирование - модель исполнения, а не синтаксический сахар для частичного применения

Все ML-подобные языки всегда имеют функции от одного аргумента, ибо именно так редукция термов происходит

Google
Friedrich
11.10.2017
15:29:19
Aleksey
11.10.2017
15:29:44
Ну это особенности реализации. Но реализация реализует семантику "как в МЛ" :)

Friedrich
11.10.2017
15:30:12
Но по большому счёту F# старается делать вид, что всё именно так. Все функции принимают по одному аргументу. Если была функция «от нескольких аргументов» — она условно считается принимающей пару/кортеж.

Aleksey
11.10.2017
15:30:36
Предположу, что именно в CLR проще было сделать мультиарные функции с хаком поверх

Anton
11.10.2017
15:30:39
Ребят, те кто с Минска. Есть желание собраться на такой же ивент как в Москве? (Знакомство-пиво-разговоры)

Friedrich
11.10.2017
15:31:53
а не дадите ссылочку?
Ссылки у меня нет, а есть просто взгляд на модель исполнения. Я считаю, что F# именно пытается скрыть от нас функции от нескольких аргументов (которые объективно существуют в CLR). Получается у него не всегда, и у Дона есть даже подборка багов про это :) См. https://github.com/Microsoft/visualfsharp/issues/3362 (и дальше по ссылкам)

F#-функции — в основном честные, с каррированием.

Anton
11.10.2017
15:32:27
Потому что CsharpLR! (шутка)

Friedrich
11.10.2017
15:33:32
Но - есть ещё C#-функции, которые принимают несколько аргументов, и на модель типов F# они отображаются некоторым образом, который не всегда совпадает с их видением с точки зрения C# (там, где абстракция протекает, получаются баги типа того, на который я указал) - для F#-функций есть всякие хитрые хаки, которые позволяют их вызывать более оптимально, если вызыватель сразу предоставляет все аргументы

Anton
11.10.2017
15:33:53
почему все потенциально интересные ивенты с пивом :(
Ну пиво же никто вливать насильно не будет. =)

Aleksey
11.10.2017
15:35:55
почему все потенциально интересные ивенты с пивом :(
всегда хожу на мероприятия и пью там лимонады и чай :)

Igor
11.10.2017
15:36:02
почему все потенциально интересные ивенты с пивом :(
Можно провести в СПб с винишко (все умолкаю)

Anton
11.10.2017
15:38:39
P.S я так понял у нас в Минске девушка F#-dev? Ничоси!

Anna
11.10.2017
15:38:53
я не F# dev, я сочувствующая

Friedrich
11.10.2017
15:39:02
У нас тут все сочувствующие.

Aleksey
11.10.2017
15:41:05
Хехе. В хаскелечяте много тех, кто за деньги на оном пишет :P

Google
Aleksey
11.10.2017
15:41:18
Хотя казалось бы

Roman
11.10.2017
15:42:12
Согласно лурку, в мире есть порядка 8 вакансий для программистов хаскель

Но наверное инфа устарела

Aleksey
11.10.2017
15:43:05
Лурк местами неатуален, да :)

Friedrich
11.10.2017
15:43:06
Хехе. В хаскелечяте много тех, кто за деньги на оном пишет :P
Ну, если в этом смысле, то я пишу на F# за деньги.

И бесплатно тоже :)

Aleksey
11.10.2017
15:43:43
О! Бесплатных ФП-прогеров вообще немало :)

Anna
11.10.2017
15:44:38
В каком-то смысле и мне немного платят за то, что я немного пишу на F#

но это не разработка

Friedrich
11.10.2017
15:45:11
Тут дело такое — (в моём окружении) чистых F#-проектов вообще нет. Как и чистых F#-программистов. Когда есть возможность и желание — некоторые компоненты программ делают на F# или на чём-нибудь ещё более весёлом — на каком-нибудь CIL или прологе.

Igor
11.10.2017
15:46:07
Friedrich
11.10.2017
15:46:15
Я не вижу будущего у гомогенных экосистем. Должна быть возможность вести разработку на многих языках!

Igor
11.10.2017
15:47:06
Странная душа, похоже :)
(когда хочется сайд эффектов и классов :)

Aleksey
11.10.2017
15:47:22
Не хочется (в чистом коде)

Anton
11.10.2017
15:48:17
Мне за F# в проде будут больно бить лицо.

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