
Nikolay
08.09.2017
07:41:01
Для веба есть ещё Fable

Evgeniy
08.09.2017
07:42:31
Но нужно учитывать, что на .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

Evgeniy
08.09.2017
08:10:58

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

Evgeniy
08.09.2017
08:11:14

Anton
08.09.2017
08:11:29
type providers ?
или уже завезли?

Evgeniy
08.09.2017
08:11:49

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

Nikolay
08.09.2017
08:15:54

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
Есть только ненормальная

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

Evgeniy
08.09.2017
10:36:45

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
Как я понял.

Nikolay
08.09.2017
10:43:00

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
Ну дык стирается же в сборке уже

Evgeniy
08.09.2017
10:51:24

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

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

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

Evgeniy
08.09.2017
11:06:09
Я тоже пока не понимаю до конца, как это работает.
Кстати, я вам показывал провайдер из Brahma?
https://github.com/YaccConstructor/Brahma.FSharp.Examples/blob/master/src/Brahma.FSharp.TypeProviderExample/Program.fs

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

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
()

Roman
08.09.2017
14:36:40

Evgeniy
08.09.2017
15:02:28
Недавно уже что-то правили в выводе типов для записей.

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

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

Evgeniy
08.09.2017
17:20:27

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

Evgeniy
09.09.2017
04:03:33

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

Evgeniy
09.09.2017
04:45:06
Вчера в F# слакочате вспомнили прошлогоднюю статью про написание кода на Scala.
http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html
Хорошо написано, можно почерпнуть идеи.