@Fsharp_chat

Страница 305 из 772
Nikolay
08.09.2017
07:41:01
Для веба есть ещё Fable

Evgeniy
08.09.2017
07:42:31
Поэтому и заинтересовался
Тогда сразу порекомендую .NET Core и VSCode с плагином Ionide.

Но нужно учитывать, что на .NET Core еще не все библиотеки переехали.

Artemy
08.09.2017
07:43:03
> веб с Websharper У WebSharper пару проблемок есть: к некоторым штукам нет документации (ну сейчас уже получше, вроде: благо, они допиливают её постепенно); и довольно маленькое сообщество, так что ответы на некоторые вопросы можно долго ждать, а то и вовсе не получить.

Google
Βοσκρεσε
08.09.2017
07:43:43
Там, как я понял, нужно каждый файл добавлять

В fsproj

Evgeniy
08.09.2017
07:46:34
Там, как я понял, нужно каждый файл добавлять
Да. Но сейчас формат проектов стал проще, чем пару лет назад, никаких проблем не должно быть.

Поэтому я все-таки рекомендую .NET Core и CLI тулзы, которые с ним идут.

В такой конфигурации можно удобно создавать и собирать проекты, не прибегая к помощи FAKE.

Nikolay
08.09.2017
07:53:43
Завезли бы в F# 4.2 string interpolation

Evgeniy
08.09.2017
07:54:25
Nikolay
08.09.2017
07:54:39
Я нуб :)

Evgeniy
08.09.2017
07:54:56
RFC про string interpolation есть, но реализацию пока не осилили.

Даже PoC есть, вот.

https://github.com/Microsoft/visualfsharp/pull/921

Βοσκρεσε
08.09.2017
08:08:56
Ну и посоветуйте книжку. Только желательно именно про F#, а не про ФП в целом. Без объяснений что такое карринг, Algebraic data types и прочее.

Google
Anton
08.09.2017
08:11:00
@gsomix .net core же для F# слишком сыро ИМХО

Evgeniy
08.09.2017
08:11:14
@gsomix .net core же для F# слишком сыро ИМХО
Никаких проблем не испытываю.

Anton
08.09.2017
08:11:29
type providers ?

или уже завезли?

Evgeniy
08.09.2017
08:11:49
type providers ?
Живу без них.

Anton
08.09.2017
08:11:57
а я не живу =)

Βοσκρεσε
08.09.2017
08:12:38
Anton
08.09.2017
08:13:25
@Woskrese еще вот этот сайт полезный https://fsharpforfunandprofit.com/

Igor
08.09.2017
08:15:13
Завезли бы в F# 4.2 string interpolation
Прикольно конечно, но без явных типов аргументов, как-то не ложится на вывод типов (в отличие от sprintf “%i” )

Evgeniy
08.09.2017
08:23:25
Привет! o/

Пожалуйте.

Sherzod
08.09.2017
08:47:43
Всем здрасте

Алекс
08.09.2017
10:31:52
Привет всем! Для core2.0 какие новости с TypeProviders?

Nikolay
08.09.2017
10:32:42
Привет всем! Для core2.0 какие новости с TypeProviders?
Пока нормальной поддержки нету

Есть только ненормальная

Алекс
08.09.2017
10:33:57
а вообще работать будет когда?

Evgeniy
08.09.2017
10:36:45
а вообще работать будет когда?
Есть надежда, что до конца года хотя бы erased доделают.

Nikolay
08.09.2017
10:36:57
а вообще работать будет когда?
Когда в последний раз смотрел, вроде не было точных сроков. Ждали вроде поддержки какой-то фичи в стандартной библиотеке, но в .Net Standard 2.0 так и не запилили её

Google
Nikolay
08.09.2017
10:38:32
https://github.com/Microsoft/visualfsharp/issues/2406

Evgeniy
08.09.2017
10:42:27
Как я понял.

Vasily
08.09.2017
10:43:15
Очень просто они работают

Nikolay
08.09.2017
10:43:29
Вроде как через Emit, но как тогда работает автодополнение

Vasily
08.09.2017
10:43:32
В скомпилированную сборку пишутся типы object

Но таблица виртуальных методов остается

Удаляется только информация о типе из конечной сборке

На этапе компиляции информация, естественно, есть

Nikolay
08.09.2017
10:47:31
Так а автодополнение как работает? С Generative там вроде просто генерятся .fs файлики, и подтягиваются как обычный код, соответственно понятно как работает автодополнение

Vasily
08.09.2017
10:48:18
Ну дык стирается же в сборке уже

Vasily
08.09.2017
10:51:30
Поэтому, например, erased type providers нельзя использовать за пределами сборки, в которой они объявлены

Evgeniy
08.09.2017
10:51:30
Он сборку генерирует.

Nikolay
08.09.2017
10:53:49
А автодополнение как работает? Ну да, я знаю про таблицы метаданных, и что он оттуда инфу берёт, но если сборка ещё не скомпилирована, например выдаёт ошибку компиляции, но автодополнение продолжает работать. Или оно использует старую удачную сборку? Или как-то генерирует только метаданные?

Google
Evgeniy
08.09.2017
11:07:17
Умеет OpenCL файлы загружать и генерировать к ним враппер.

У меня была идея сделать что-то похожее для .cpp, но это большой объем работы.

Nikolay
08.09.2017
11:09:28
Сложная тема.
Ну а ты думал я вам тут простые и вопросы задаю? ?

Evgeniy
08.09.2017
11:10:04
Ну а ты думал я вам тут простые и вопросы задаю? ?
Раньше-то я мог на твои вопросы отвечать!

Nikolay
08.09.2017
11:11:39
Evgeniy
08.09.2017
11:20:19
Мне кажется, нужно пересмотреть свое отношение к стикерам. :)

Но пока это только для распространения в других чатах.

@the_RAMZAY Тебе понравится, я думаю. http://www.fssnip.net/7Tz/title/Winequality-decisiontree-using-AccordNet

Anton
08.09.2017
14:09:21
гыгы!

Igor
08.09.2017
14:27:28
F# ведь выводит тип рекорда по первому обращению к полю через точку? Нет ли каких-нибудь воркэраундов, что бы он смотрел на все использования рекорда?

Кирилл
08.09.2017
14:29:46
F# ведь выводит тип рекорда по первому обращению к полю через точку? Нет ли каких-нибудь воркэраундов, что бы он смотрел на все использования рекорда?
Разве? Вроде он матчит по форме того что ты ему в литерале указываешь, ну или можно насильно имя типа перед полем ставить. Или это я не понял вопроса :)

Igor
08.09.2017
14:33:40
Приведу пример. text1/test2 компилируятся, а test3 НЕТ тк выводится не тот тип (выводится который объявлен последним с нужным полем) type Record1 = { id: int; title: string } type Record2 = { id: int; name: string } let test1 x = let a = x.id let b = x.name () // Некомпилируется // let test3 x = // let a = x.id // let b = x.title // () let test2 x = let b = x.title let a = x.id ()

kana
08.09.2017
16:45:06
Я тут недавно, так что не знаю, кидал ли тут кто, сам наткнулся случайно в выдаче ютуба - крайне годный доклад https://www.youtube.com/watch?v=E8I19uA-wGY

Roman
08.09.2017
16:46:54
Главное чтоб не флуд со спамом. Так что отлично.

kana
08.09.2017
17:20:58
ноуп

Evgeniy
08.09.2017
17:21:44
ноуп
https://www.youtube.com/watch?v=cxs7oLGrxQ4

Google
Evgeniy
08.09.2017
19:30:09
https://sidburn.github.io/blog/2017/03/13/variable-arguments

Еще там с F# интероп ниочинь.

ParamArray чото не пайпится.

Да, ParamArray действительно не очень хорошо заходит в F# коде.

Летучая
08.09.2017
19:49:02
При попытке передать функцию с ParamArray как аргумент Ионид вываливает несоответствие типов.

Igor
08.09.2017
21:40:59
Никто не ловил такой баг? https://github.com/fsharp/FsAutoComplete/issues/205 10 минут не мог понять, почему у меня перестали работать подсказки, после того как просто сконкатенировал два списка через @ ?

kana
08.09.2017
21:47:26
Хм, а ";;" в шарпе оставили?

Я думал, убрали, как в ризоне, это же страшно

?
08.09.2017
21:48:15
Это же только для репла, ну, в окамле только для репла

Friedrich
09.09.2017
03:58:03
Ты указываешь конкретный тип.
Ну, вообще-то для downcast не указываешь, компилятор сам выводит. В том-то и смысл.

Friedrich
09.09.2017
04:05:19
Да, если сможет вывести.
А если не сможет — то, похоже, ты вообще с downcast обломаешься, и нужно что-то другое использовать.

Хм, а ";;" в шарпе оставили?
Ни разу в коде не использовал эти точки с запятой. Считай, что выпилили.

Это же только для репла, ну, в окамле только для репла
Зависит от репла. Например, в варианте F# Interactive, который встроен в Rider, это не нужно ставить.

Evgeniy
09.09.2017
04:45:06
Вчера в F# слакочате вспомнили прошлогоднюю статью про написание кода на Scala.

http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html

Хорошо написано, можно почерпнуть идеи.

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