
Siarhei
09.10.2018
12:13:44
если точнее

Kirill
09.10.2018
12:26:52

Paul
09.10.2018
12:31:56
Спасибо!

Anton
09.10.2018
12:37:03

Google

Andrew
09.10.2018
12:52:26

Александр
09.10.2018
13:16:01
Я не шутил
Каждая формула, которую я видел делает меня страдать. Хуже матиматиков переменные называют только физики

Ayrat
09.10.2018
13:18:09
ладно переменные, но вот выдумывание новых операторов - это кажется специальная олимпиада

Grigoriy
09.10.2018
13:18:27

Ayrat
09.10.2018
13:18:45
^fun
ну это-то нормально!!1
:D

Grigoriy
09.10.2018
13:19:25
почему-то Кшиштоф называл >=> ракетой
хотя опрос в твиторе со мной согласился, что это - рыба :)
|>(+)<|
красота же!

Ayrat
09.10.2018
13:22:04

Google

Ayrat
09.10.2018
13:22:17
https://elvishjerricco.github.io/2016/10/12/kleisli-functors.html

Grigoriy
09.10.2018
13:23:21
Обожи!
Your search - стрелочка Кляйзли - did not match any documents.

Ayrat
09.10.2018
13:24:17

Alexey
09.10.2018
13:25:28
Ayrat : ну дык ты ж послал

Ayrat
09.10.2018
13:25:48
я-то сразу перевёл

Alexey
09.10.2018
13:26:21
вторая ссылка - про стрелки в хаскеле...

Ayrat
09.10.2018
13:26:41
Хаскель задаёт тон операторному безумию в ФП
иначе бы совсем распоясались
>=> в гопачке и в жирафе кстати соответствуют композиции кляйзли:
(a -> M<b>) -> (b -> M<c>) -> (a -> M<c>)
в гопаке оно композирует джобофункции, которые принимают обычные аргументы, а возвращают джобы
А в жирафе это хендлеры все, они принимают контекст запроса, возвращают Task<option context> или как-то так

A64m
09.10.2018
13:34:30
хаскелисты чаще "рыбкой" называют, а не ракетой (и в тайпклассопедии так)

Grigoriy
09.10.2018
13:38:58
накрайняк - торпеда
Привет!

Serg
09.10.2018
14:41:05
Пронто)

Grigoriy
09.10.2018
14:42:29

Roman
09.10.2018
15:07:15
https://demystifyfp.gitbook.io/fstoolkit-errorhandling

Grigoriy
09.10.2018
15:16:26
о! надо придумать теперь, как это с Fable2 и его Thoth.Json поженить

Serg
09.10.2018
15:38:47

Google

Roman
09.10.2018
16:02:06
https://github.com/dotnet/infer/tree/master/src/FSharpWrapper

Alexandr
09.10.2018
16:38:02

Grigoriy
09.10.2018
16:38:57
Порядок файлов в проекте имеет значение

Roman
09.10.2018
16:38:58
Текст ошибки)

Grigoriy
09.10.2018
16:39:19
Тебе тут говорят, что файл Program.fs должен быть последним

Alexandr
09.10.2018
16:39:57

Roman
09.10.2018
16:40:14
В дереве проекта
Или посмотри в контекстном меню файла есть хоткеи

Grigoriy
09.10.2018
16:41:24
в контестном меню файла в солюшен эксплорере есть пункты Up/Down

Alexandr
09.10.2018
16:44:10

Vasily
09.10.2018
16:44:32

Alexandr
09.10.2018
16:44:50

Grigoriy
09.10.2018
16:44:53
Хелп!
Может кто делал такую штуку - есть seq<Async<Result<...>> хочу |> Async.Parallel но не более N одновременных

Ayrat
09.10.2018
16:47:06
я делал

Grigoriy
09.10.2018
16:47:12
начал blocking queue в середину пихуить...

Vasily
09.10.2018
16:47:19
Partition небось

Google

Ayrat
09.10.2018
16:47:32
короче есть два способа. быстрый и плохой и хороший и чуть долгий

Vasily
09.10.2018
16:47:32
Точнее chunks

Grigoriy
09.10.2018
16:47:33
Партишон делит на 2

Ayrat
09.10.2018
16:47:36
быстрый и плохой - чанками

Grigoriy
09.10.2018
16:47:39
Чанки сделал
Но это не оптимально

Ayrat
09.10.2018
16:48:44
хороший - сделать N рекурсивных функций каждая из которых бы тягала работу их синхроннизированного источника и терминировалась когда источник пуст.
На гопаке такое сделать - пара строчек

Grigoriy
09.10.2018
16:48:51
допустим N = 10. 9 отработали, а 1 - всё продолжает
и мы его ждём

Ayrat
09.10.2018
16:49:14
дадада, поэтому стартуй N воркеров (рекурсивных функций)
начало функции проверка некого синхронного источника на наличие работы. Если нет - терминируем рекурсию.
если есть, синхронно забираем, работаем. Рекуримся
гопаком проще, т.к. там ченелы и вообще все общение синхронное, с комитами. Поэтому проверять один ченел из N воркеров и отдавать только одному работу - не проблема

Grigoriy
09.10.2018
16:52:26
погедь с гопаком :) я пытаюсь асинки прочувствовать
илдить в выходной сиквенс?

Vasily
09.10.2018
16:54:33
Ну есть ещё вариант

Grigoriy
09.10.2018
16:54:40
Внемлю!

Vasily
09.10.2018
16:55:01
Каждые n async заворачивать в async

Ayrat
09.10.2018
16:55:25

Grigoriy
09.10.2018
16:56:04

Google

Grigoriy
09.10.2018
16:56:18
Directory.GetFiles(source)
|> Seq.filter filterFn
|> Seq.map (fun f ->
async {
use file = File.OpenRead(f)
return! this.UploadFile(drive, Path.Combine(target, Path.GetFileName(f)), file)
})
|> Array.ofSeq |> chunk 10
|> Seq.map (fun c -> c |> Async.Parallel |> Async.RunSynchronously)
|> Array.concat

Vasily
09.10.2018
16:57:39
Вот перед seq.map по идее можно вставить chunk

Grigoriy
09.10.2018
16:58:15
он там есть - только подальше на шаг

Vasily
09.10.2018
16:58:50
Ну, возможно, надо наоборот

Grigoriy
09.10.2018
16:58:58
не влияет

Vasily
09.10.2018
16:59:03
Сначала чанки

Grigoriy
09.10.2018
16:59:08
они ж холодные

Vasily
09.10.2018
16:59:13
Потом мапить в асинки
И как startchild

Grigoriy
09.10.2018
17:00:55
я, вот, думаю, мож AsyncSeq тут поможет

Ayrat
09.10.2018
17:02:26

Grigoriy
09.10.2018
17:02:51
я не могу сообразить как результат отдавать :(

Ayrat
09.10.2018
17:02:52
Асинксек по-моему тоже чанкает

Roman
09.10.2018
17:02:58

Ayrat
09.10.2018
17:03:12
Там есть параллельная итерация

Grigoriy
09.10.2018
17:04:22