@Fsharp_chat

Страница 285 из 772
Friedrich
23.08.2017
16:27:46
Надо проверить, действительно ли мы правильно поняли ситуацию, и компилятор ругается на member 'GetItem' is not defined в ситуации, когда такой метод есть, но у него не совпадает сигнатура.

Если хотите помочь F# — это наш шанс! :) А потом бы можно было даже и ковырнуть компилятор — вдруг это просто исправляется?

Mike
23.08.2017
16:32:19
Метода GetItem почему-то нет, но GetItemAsync вроде как работает.

Google
Evgeniy
23.08.2017
16:33:05
Может уже Форкманн поправил?

Friedrich
23.08.2017
16:34:57
Ну, я это и имею в виду — надо смоделировать ситуацию, проверить на актуальном компиляторе.

Vasily
23.08.2017
16:43:35
http://clip2net.com/s/3NaA0ml
Похоже,что десериализация :)

Mike
23.08.2017
17:08:43
Сначала надо версию F# узнать. :)
Microsoft (R) F# 2.0 Compiler build 4.0.40219.1

Nikolay
23.08.2017
18:10:45
Как на F# сделать подобное: string[] lines = ...; string text; for (var i = 0; i < lines.length; i++) { if (text.Length + lines[i].Length < 4096) { text += "\n" + lines[i]; } else { DoSomeStuff(text); text = ""; } }

Igor
23.08.2017
18:16:17
Nikolay
23.08.2017
18:17:17
От мутабельности избавиться надо)

Летучая
23.08.2017
18:18:41
не думаю что они хотя бы секунду наберут
это ооочень дорогая операция

Igor
23.08.2017
18:19:59
От мутабельности избавиться надо)
Это что вообще за язык? (почему length с маленькой в цикле?)

Nikolay
23.08.2017
18:20:17
Просто ошибся

Igor
23.08.2017
18:25:45
Да это я пример кода набросал на C#
То что будет теряться line каждый раз при превышение размера и все line большее 4096, это тоже часть алгоритма?

А вообще можно взять RX, у него есть операции работающие с буферами.

Google
Klei
23.08.2017
19:41:31
Как на F# сделать подобное: string[] lines = ...; string text; for (var i = 0; i < lines.length; i++) { if (text.Length + lines[i].Length < 4096) { text += "\n" + lines[i]; } else { DoSomeStuff(text); text = ""; } }
let lines = [|""|] let text = "" let text = lines |> Array.fold (fun (current : string, acc) line -> if current.Length + line.Length < 4096 then sprintf "%s\n%s" current line, acc else line, current :: acc) (text, []) // напрашивалось: // |> List.Cons // |> Seq.rev // |> Seq.iter doSomeStuff // но в примере происходит приблизительно это ||> fun current acc -> acc |> Seq.rev |> Seq.iter (printf "%s") current // Если это попытка влезть в ограничение telegram, то такая реализация не пройдет случаи с использованием сложных (2 и более байта) знаков.

Klei
23.08.2017
19:43:51
Опередил. :)
Я временно числюсь в множестве одноруких. У тебя была солидная фора)

Klei
23.08.2017
19:57:50
Vasily
23.08.2017
20:25:27
Можно красивее сделать

Хотя не

Партишны тут не пркатят

Vladimir
23.08.2017
21:05:01
а пользовался кто-нибудь dottrace-ом?)

что-то я ничего почти не понимаю в нем)

видимо надо уроки скачать по нем с рутрекера

Vasily
24.08.2017
08:37:47
А чего в нем понимать?

Там все просто

Натравливаешь

На проект

Он собирает снапшот

Потом просматриваешь в виде списка

Google
Vasily
24.08.2017
08:38:33
Дерево по умолчанию неудобно анализировать

Vladimir
24.08.2017
08:40:17
http://c2n.me/3NbmMfZ - вот верхняя часть списка

Vasily
24.08.2017
08:43:00
Лучше снапшот пришли

Гляну у себя

Это не снапшот же

Vladimir
24.08.2017
08:45:17
снапшот

переименуй расширение в dtp, если надо

почему-то по умолчанию в dll сохраняет

Vasily
24.08.2017
08:46:39
Хмм... в 2017.1 не открывает

Vladimir
24.08.2017
08:47:26
у меня 2017.2 скачано

проблема в любом случае что показывается время сколько код самой функции отработал, а не вместе с подфункциями

Evgeniy
24.08.2017
08:49:51
Привет!

Диёр
24.08.2017
08:50:21
Хай. Кто-нибудь в райдере пишет на fsharp?

Evgeniy
24.08.2017
08:50:41
@angmarr @fvnever ^

Friedrich
24.08.2017
08:51:06
Ага, я пишу в райдере на F#. Сразу скажу, Core пока не поддерживается.

Igor
24.08.2017
08:51:11
Хай. Кто-нибудь в райдере пишет на fsharp?
А в чем вопрос? Rider пользовался, но в основном пишу в VSCode под кор.

Vasily
24.08.2017
08:51:15
Плюс опции профайлинга выставить

Диёр
24.08.2017
08:52:07
А в чем вопрос? Rider пользовался, но в основном пишу в VSCode под кор.
Ну вот хотел фшарп попробовать, но у меня стоит бубунта. Думаю на каком редакторе/ide писать.

Vasily
24.08.2017
08:52:21
VSCode

Google
Igor
24.08.2017
08:52:24
Ну вот хотел фшарп попробовать, но у меня стоит бубунта. Думаю на каком редакторе/ide писать.
VSCode конечно, для хеловород - самое оно. Весит ~50-100 MB, запускается мгновенно, памяти жрет мало.

Диёр
24.08.2017
08:52:57
Ну не хэллоуворлд, а какой-нибудь маленький сервис с restapi может)

Friedrich
24.08.2017
08:53:19
Да, я тоже считаю, что сегодня VSCode — более хороший выбор для кроссплатформенной разработки на F#.

Диёр
24.08.2017
08:53:38
А если core нет, то моно тогда или что?

или core только в райдере не поддерживается?

Evgeniy
24.08.2017
08:55:21
Обещают запилить скоро.

Vladimir
24.08.2017
08:56:40
Ну всегда можно в режиме дерева глянуть, если надо
Точно, по правой клавише открывается)

Evgeniy
24.08.2017
08:56:57
В VSCode неплохая поддержка, но не уверен, что допилили работу с порядком файлов. Но формат Core проектов простой, есть CLI тулзы, можно руками править.

Диёр
24.08.2017
08:58:17
Ну мне в бубунте пока с моно работать?

Evgeniy
24.08.2017
08:59:04
Ну мне в бубунте пока с моно работать?
Зависит. Я бы взял Core и VSCode.

Летучая
24.08.2017
08:59:10
В вскоде отличная поддержка.

Пишу код на F#+Core и наслаждаюсь!

Диёр
24.08.2017
08:59:38
А в бинарники можно собрать?

Летучая
24.08.2017
09:00:00
Всё можно, что кли позволяет (а он позволяет).

Vlad
24.08.2017
09:02:13
провайдеры типов под моно же работают?

Evgeniy
24.08.2017
09:04:21
провайдеры типов под моно же работают?
Да. Но только те, что обновили под Mono 5.0

Диёр
24.08.2017
09:19:46
Как раз для 17.04 вышел дотнет кор, а то всё лето проебался с совместимостью 16.10 и 17.04

И это, а что не так с райдером? У меня всегда жидбрейнс ассоциируются с первоклассными IDE

Google
Kirill
24.08.2017
09:21:53
на core 2.0 уже пишете?

Vladimir
24.08.2017
09:23:37
+

Friedrich
24.08.2017
09:23:45
Я ещё нет.

Диёр
24.08.2017
09:24:27
Ну в релиз же выкатили

Кирилл
24.08.2017
09:27:17
Rider для F# неплох, но насколько я помню там еще нет возможности порядок файлов менять

А это уже значит, что нужно лезть в проектный файл :(

Evgeniy
24.08.2017
09:29:35
Ну в релиз же выкатили
Потому что поддержка C# была готова. История с F# сложная, как обычно. :)

Vladimir
24.08.2017
09:48:13
кстати проверил HashSet vs ResizeArray, второй оказался чуть-чуть быстрее в данной задаче

Летучая
24.08.2017
09:48:39
Потому что поддержка C# была готова. История с F# сложная, как обычно. :)
Хотя казалось бы, в чем проблема обновлять проектный хмл файл на основе порядка элементов в уи

Friedrich
24.08.2017
09:50:08
Хотя казалось бы, в чем проблема обновлять проектный хмл файл на основе порядка элементов в уи
Настолько проблема, что сами MS уже чёрт знает сколько лет не могут сделать это нормально в студии :)

Летучая
24.08.2017
09:56:41
Настолько проблема, что сами MS уже чёрт знает сколько лет не могут сделать это нормально в студии :)
Надо написать свой плагин для райдера! (или для студии, но что-то уже мс не доверяется)

Friedrich
24.08.2017
09:57:04
Они обещали, что откроют код F#-плагина.

Наверное, пока что боятся открывать нестабильный API. Постабилизируется ещё пару релизов, и, может, в следующем году откроют.

Evgeniy
24.08.2017
09:57:46
Хотя казалось бы, в чем проблема обновлять проектный хмл файл на основе порядка элементов в уи
Зависит. Я не знаю, в чем проблема у Rider. Но в VS захотели присоединиться к новой project-system, а это потребовало некоторой работы с ребятами из других команд.

Pavel
24.08.2017
10:36:17
ребята, можете помочь? =) вот вопрос на корявом английском: https://stackoverflow.com/questions/45859062/f-cyclic-dependencies-with-message-processing

суть проблемы такая: система основана на экторах, эктору передаются сообщения, приходящие по UDP, он же иногда отправляет сообщения

но, при старте эктора, он сразу должен отправить сообщение и ждать каких-то входящих сообщений

поэтому, если какого-то udp листнера запускать после старта эктора, некоторые сообщения могут потеряться

листнер же передаёт сообщения в эктора (MailboxProcessor) через actor.Post

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