
Igor
19.06.2017
15:03:31
Судя по https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/loops-while-do-expression
придется воткнуть mutable variable

Klei
19.06.2017
15:03:47

Friedrich
19.06.2017
15:05:00

Igor
19.06.2017
15:05:02

Google

Friedrich
19.06.2017
15:05:48
Хм, тут надо скрестить Seq и Async? Я думаю, можно попробовать, но не факт что хорошо получится.
Хотя были же какие-то трансформации из Seq<Async<T>> в Async<Seq<T>>, а дальше тривиально.

Klei
19.06.2017
15:06:43

Igor
19.06.2017
15:12:14
В общем, накидал обычную async rec функцию
let readWhile (reader: StreamReader) (endMark: string) = async {
use sw = new StringWriter()
let rec readWhileRec () = async {
let! line = reader.ReadLineAsync() |> Async.AwaitTask
if line <> endMark then
sw.WriteLine line
do! readWhileRec ()
}
do! readWhileRec ()
return sw.ToString()
}

Vasily
19.06.2017
15:13:03
Выглядит, конечно, странно
Не проще в seq завернуть?

Igor
19.06.2017
15:15:50
Если накидаешь код, буду благодарен. Я пока не понимаю как сделать асинхронно (не хочу блокировок).

Vasily
19.06.2017
15:24:45
Минуту
Борюсь с синтаксисом
let readWhile (reader: StreamReader) (endMark: string) =
let s= seq {
let line = reader.ReadLineAsync() |>Async.AwaitTask
yield line
}
s|>Async.Parallel
|> Async.RunSynchronously
|> Seq.takeWhile (fun s->s <> endMark)
|>Seq.fold (fun acc s->s+acc) ""
Примерно так
но вызывают большие сомнения Async.Parallel, конечно

Igor
19.06.2017
15:42:33
А меня Async.RunSynchronously, он разве не будет блокировать вызывающий поток?

Google

Vasily
19.06.2017
15:42:51
Ну вот и я примерно про то
Тут надо цепочку вызовов делать последовательных типа Task.ContinueWith

Igor
19.06.2017
15:43:28
Хочется что бы readWhile тоже был асинхронный, тк он в свою очередь тоже вызывается из async { }

Vasily
19.06.2017
15:44:26
http://fsprojects.github.io/FSharp.Control.AsyncSeq/library/AsyncSeq.html
Вот эта хрень может помочь, по идее

Andrey
19.06.2017
15:45:38
Кстати насколько целесообразно использование Async.Parallel для выполнения нескольких (около 5) задач де сериализации объектов типов значений и стрингов полей по 5 каждый newtonsoft.json Вроде итак десериализация относительно быстрая этой либой. Опыт есть у кого?

Vasily
19.06.2017
15:50:50
Особого выигрыша не будет скорее всего

Evgeniy
19.06.2017
15:51:37
Vasily @angmarr AsyncSeq поможет в вашей задаче?
http://fsprojects.github.io/FSharp.Control.AsyncSeq/

Igor
19.06.2017
15:52:18
Нехоца тащить лишние либки, тем более все уже работает

Evgeniy
19.06.2017
15:53:25

Dmitry
19.06.2017
15:54:09
ААА! @shwars живой прямо передо мной стоит!

Vasily
19.06.2017
15:54:24
Потрогай его

Friedrich
19.06.2017
17:37:14

Evgeniy
20.06.2017
06:29:24
Посмотрите, о чем твитнул(а) @thegamma_net: https://twitter.com/thegamma_net/status/876860835565580290?s=09
Выглядит круто.

Vasily
20.06.2017
07:21:34

Evgeniy
20.06.2017
07:22:43

Vasily
20.06.2017
07:23:17
Ну там походу fable+ custom csv+ charts
Томаш всем хорош, конечно, кроме одного

Google

Evgeniy
20.06.2017
07:23:41
http://tomasp.net/academic/papers/pivot/

Vasily
20.06.2017
07:23:53
Он не решает задачи, которые встречаются в реальной жизни
У него больше исследовательские
проблема в основном в том, что в реальной жизни источники должны быть динамически конфигурируемыми
В общем, читаю препринт, идея очень крутая для анализа статических источников

Friedrich
20.06.2017
09:16:07
Он не решает задачи, которые встречаются в реальной жизни
Так реальная-то жизнь тоже у всех своя :)
Кто-то в реальной жизни исследователь, и у него такие задачи. Кто-то "в реальной жизни" data scientist, и тебе его задачи тоже покажутся странными. А вот исследователю или data scientist'у покажутся странными твои задачи :)

Vasily
20.06.2017
09:16:26
У меня задачи такие, что кровь из глаз идет :)
В общем, так сложилось, что я часто занимаюсь различными интеграциями с разными источниками данных, потому мне интересна скорее концепция метаданных, чем генерация типов на конкретных данных
Читаю препринт Петричека и понимаю, что знания математической нотации сильно не хватает. Нужна помощь @gsomix , походу :). Точнее, чтобы был ресурс, где на пальцах объясняется вся эта арабская вязь :)
Типа такой : Πfp(1),...,fp(m)
{f1 7→ v1,1, . . . , v1,r , . . . , fn 7→ vn,1, . . . , vn,r }
{fp(1) 7→ vp(1),1, . . . , vp(1),r , . . . , fp(m)
7→ vp(m),1, . . . , vp(m),r }

Evgeniy
20.06.2017
09:21:07

Vasily
20.06.2017
09:21:23
Да мне бы понять, что там какие знаки означают

Evgeniy
20.06.2017
09:21:24
Я обычно читаю то, что написано буквами. Не та специализация. :)

Vasily
20.06.2017
09:21:29
Интуитивно я понимаю
Что имеют в виду
А вот шо означают всякие стрелки, дроби, перевернутые А и прочие...
Когда-то знал, но забыл...

Aleksander
20.06.2017
09:25:06
мне "Гедель Эшер Бах" немного помогла все это вспомнить :)

Vasily
20.06.2017
09:47:24
https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2
Чет нашел

Google

Vasily
20.06.2017
10:08:59
Но все равно формальные доказательства корректности реализации провайдеров пока не для моих мозгов :(

Roman
20.06.2017
10:10:59

Vasily
20.06.2017
10:25:19
Учти,что некоторых обозначений там нет

Roman
20.06.2017
11:09:01
Привет!

Evgeniy
20.06.2017
11:09:40
Пожалуйте. :)

ect"==typeof module.exp
20.06.2017
11:18:26

shibuya
20.06.2017
11:19:46
@neftedollar @gsomix приветствую

Roman
20.06.2017
11:21:11

shibuya
20.06.2017
11:21:47
опыта ноль, немного изучал хаскелл (на уровне hello world)

Vasily
20.06.2017
11:24:37
Это нормально

Roman
20.06.2017
11:27:33
Да, а почему f#?

shibuya
20.06.2017
11:29:30
Ну я пока просто в закладки себе добавил, буду читать, может заинтересуюсь. Тут вообще чат профи, новичков или всё вместе?

Vasily
20.06.2017
11:29:45
Всякое

Evgeniy
20.06.2017
11:29:46

Igor
20.06.2017
11:29:46

shibuya
20.06.2017
11:30:56
@angmarr Не, я только python и c++ изучал, остальное так, для общего развития

Vasily
20.06.2017
11:42:33
Тож полезно
Зырьте, какую прикольную статью откопал: http://tomasp.net/blog/2014/update-monads/

Pawel
20.06.2017
18:52:35

Evgeniy
20.06.2017
19:10:17
https://github.com/Microsoft/visualfsharp/pull/3227

Google

Evgeniy
20.06.2017
19:10:26
Потихоньку фиксят баги F#4.1

Pawel
20.06.2017
19:16:04
http://tomasp.net/academic/papers/pivot/
пойнт у пэйпера правильный, реляционная алгебра - отстой, пора её выкидывать на фиг и разработать нормальный язык описания данных., спасибо кэпу Томашу Птричеку.
У меня такое впечатление, что Томаш просто не в курсе, что моделей данных есть куда больше, чем упомянутые в его статье: от узкоспециализированных "словарей", то универсальных "графов". А популярные "реляционные", которые он как бы исследует, и "документные" находятся лишь где-то по середине между универсальностью и специализированностью.

Vasily
20.06.2017
19:51:07
Работал я с графовыми базами данных. Правда, самоптсными
Странные ощущения

Roman
20.06.2017
19:52:13

Pawel
20.06.2017
19:52:43
Так реальная-то жизнь тоже у всех своя :)
Кто-то в реальной жизни исследователь, и у него такие задачи. Кто-то "в реальной жизни" data scientist, и тебе его задачи тоже покажутся странными. А вот исследователю или data scientist'у покажутся странными твои задачи :)
ну так тут исследуется прикланая задача, а не общенаучная. В отрыве от практики оно было бы совсем ни о чём. Синтетический язык, заточенный под тайп-провайдеры F# - это как раз тот случай. Ну придумал - а что толку? В ентерпрайзе есть много подобных алгебр разной степени эфективности по способам хранения данных, индексированию, шардингу, репликациям и т.п. Чем его алгебра лучше или хуже - хз, из пэйпера не ясно. По аспектам взаимодействия человека и компьютера тоже ничего интересного он не предложил, любая документная БД даёт в этом плане на много больше, чем его pivot type provider


Vasily
20.06.2017
19:54:07
От cypher я в восторге
cypher не смотрел, работал с полностью самописной, атмосфера стартапа, вот это вот все...
Ну и, поскольку писали очень умные парни, на качество кода им было посрать

Pawel
20.06.2017
20:03:04
У меня все новые системы уже 3 года как на OrientDb. По функциональности и простоте она абсолютно рвёт всё. И язык, который придумал Томас, на ней сделать как два пальца об асфальт, но смысла нет

Vasily
20.06.2017
20:10:52
Я смотрю, по скорости всех вроде ArangoDb уделывает

Pawel
20.06.2017
20:15:39
Скорость очень сильно зависит от всего - от данных и реализации приложения. Пересмотрел кучу бенчмарков - везде всё по разному,

Evgeniy
21.06.2017
10:33:59
https://github.com/fsharp/fslang-suggestions/issues/584

Most
21.06.2017
11:58:50
Привет, у меня такой вопрос) кто-то из вас писал Funogram, проект еще пилится? не важно с какой скоростью)
issue и pr принимаются?

Vasily
21.06.2017
12:00:50
@Dolfik пишет

Nikolay
21.06.2017
12:01:05