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

Friedrich
11.10.2017
06:32:20
Это про предыдущий написали, который вышел 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

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

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:37:50

Nikolay
11.10.2017
09:37:52

Enhed
11.10.2017
09:38:14

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-провайдеры всегда.

Vlad
11.10.2017
09:48:13

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
Код в обычной сборке (или полученный после применения erased-провайдера) проходит оптимизацию компилятором F#, который со своей работой справляется неплохо.
А код из generative-провайдеров, как мы теперь понимаем, этой оптимизации не подвержен.
Задача провайдера — реализовывать этот код оптимально.

Evgeniy
11.10.2017
10:15:51

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

Evgeniy
11.10.2017
10:17:42
Да.
Или все-таки при компилации провайдера происходит частичная оптимизация?

Friedrich
11.10.2017
10:19:44

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
Ну это особенности реализации. Но реализация реализует семантику "как в МЛ" :)

Anna
11.10.2017
15:29:49

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

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

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

Anna
11.10.2017
15:31:20

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! (шутка)

Anna
11.10.2017
15:33:19

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
И бесплатно тоже :)

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

Anton
11.10.2017
15:46:07

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

Aleksey
11.10.2017
15:46:22

Igor
11.10.2017
15:47:06

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

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