@Fsharp_chat

Страница 601 из 772
Ayrat
14.06.2018
12:00:48
Если хочешь прям чистой параллельности и возможность фолдить асинхронно, добро пожаловать в мир стримов.

Hopac.Streams / AsyncSeq для F# норм

Pavel
14.06.2018
12:01:25
фолдить асинхронно — звучит достаточно странно, ведь каждый раз надо дождаться результата предыдущего сворачивания

Ayrat
14.06.2018
12:01:45
дожидаться-то можно неблокирующе

Google
Pavel
14.06.2018
12:02:05
а, в этом смысле, да

Ayrat
14.06.2018
12:02:55
Могу тебе накидать элементарный гист на hopac'овских стримах

Pavel
14.06.2018
12:03:25
спасибо, но я пока сам потыкаюсь лучше =)

Ayrat
14.06.2018
12:03:33
:D

Evgeniy
14.06.2018
12:33:12
http://luisquintanilla.me/2018/06/13/mlnet-classification-fsharp/ немного о ML
Опоздали они немного с ML.NET на паровозик хайпа.

Sergey
14.06.2018
13:45:55
Опоздали они немного с ML.NET на паровозик хайпа.
почему? там достаточно необычный API … более понятный для тех кому надо без подробностей и для .net проектов оч даже норм опция, вот я когда руки дойдут портируюсь на него наверно

Nikolay
14.06.2018
13:49:52
Я так понимаю обучаться он будет очень медленно

Nikolay
14.06.2018
13:50:43
Почему?
Ну оно же на CPU

Evgeniy
14.06.2018
13:51:12
Ну оно же на CPU
Большая потребность в GPU появилась с глубоким обучением.

Кажется, в ML.NET сейчас нет нейронных сетей, только "классические" алгоритмы.

Nikolay
14.06.2018
13:53:50
Я думал она про нейронные сети, ибо там затрагивались CNTK, TensorFlow и прочие

Google
Ayrat
14.06.2018
17:03:34
А что побудило помучить ее?)
Задача сложная и совет коллег

Работал в букмекерской компании, там сложная логика очень, банки отдыхают.

Igor
14.06.2018
17:05:43
Ребят, а кто писал рыбку (>=>) для Async, может поделиться? А то я написал, но чувствую что больно "в лоб" сделал, не оптимизированно.

Ayrat
14.06.2018
17:06:33
Покажи. Сразу спрошу, ты ж в курсе что можно без оверхеда comp expression вызвать методы типа async.Bind?

Ayrat
14.06.2018
17:10:04
Вызов всяких delay, zero, combine и пр

Vasily
14.06.2018
17:11:53
Оверхед вроде как на run

Насколько я помню

Ayrat
14.06.2018
17:14:44
Ну не, оверхед когда ты в комп експрешне делаешь как бы пять let, а он добавляет туда много вызовов между. Проще чаще всего напрямую вызвать. И очень плохо что нет Map метода. Хотят добавить

Vasily
14.06.2018
17:15:19
Можно кастомный сделать

Igor
14.06.2018
17:16:03
Покажи. Сразу спрошу, ты ж в курсе что можно без оверхеда comp expression вызвать методы типа async.Bind?
Ну он не полиморфный, только для асинка (a->Async<b>) -> (b -> Async<c>) -> (a->Async<c>)

Evgeniy
14.06.2018
17:30:42
?‍♂️

Мне кажется, момент хорошенько хайпануть и перетянуть кого-то с Python потерян. :)

Vlad
14.06.2018
17:36:46
Google
Evgeniy
14.06.2018
17:37:23
Я не помню, когда там F# был относительно популярный. :)

Vlad
14.06.2018
17:37:34
В 2010? :)
Да я про мл либу)

Evgeniy
14.06.2018
17:37:41
Да я про мл либу)
И я про нее!

Vlad
14.06.2018
17:38:08
И я про нее!
Хм, разве в 2010 что-то кроме opencv было из популярного?

Evgeniy
14.06.2018
17:39:13
scikit-learn уже был.

Я шучу же.

Наверное, в то время, как появился CNTK и Azure ML.

Kir
14.06.2018
17:43:21
Работал в букмекерской компании, там сложная логика очень, банки отдыхают.
кстати, а что за логика, в чем сложность? много математики? или просто много разных инвариантов и все нужно связать вместе? или может там какието rule based engine писать нужно свои или чужие применять. Если все ж математики много, то интересно какой? Мат стат, теор вер, ряды? Просто всегда интересовали подобные темы, интересно в чем сложность

PS сорри, если оффтоп)

Evgeniy
14.06.2018
17:44:39
Можем перенести в оффтоп чатик, как скажете. :)

Mariia
14.06.2018
17:44:46
О, занятно, Accord.NET появился в 2010.
а что тебя удивляет? он древний как моя жизнь

Evgeniy
14.06.2018
17:47:54
Ayrat
14.06.2018
17:49:57
Допустим матч Кубань ЦСКА . Вероятность статическая (на основе истории встреч и состава) 5 90 5 (победа 1ой, победа второй, ничья). Вероятность по опросу экспертов 20 60 20. По опросу на сайте 30 50 20. И при этом на Кубань, при учете малых вероятностей кто-то заносит х10 денег. Тут надо сигналить моментально об остановке ставок на матч вообще и бане конкретного клиента в частности

И таких моментов миллиард. Когда ты крупный букмекер тебя все пытаются наебать. Даже если ты не пытаешься, тебя будут наебывать из-за рубежа на разнице кэфоф. Чтобы это отследить надо знать о мировых кэфах на событие.

А если кто-то сидит на самом матче и имеет инфу без задержки? Вот он видит как Рональдо подбегает к воротам, один на один. Ну это будет гол, у чувака уже в UI вбито всё, надо только в мобильном клиенте Ok нажать. Это чистый наеб.

Google
Ayrat
14.06.2018
17:54:27
Короче, я закончу на этом, но это далеко не все)

Ayrat
14.06.2018
17:55:02
Ну вот я эти темы на акке и делал

Kir
14.06.2018
17:55:31
да, очень интересно. спасибо за маленькие инсайды)

Ayrat
14.06.2018
17:55:34
Каждый актор = событие. Ведёт себя и историю событий внутри события) чтобы правильно оценивать обстановку

Kir
14.06.2018
17:56:13
вспомнил, что bet365 тоже акторы используют)

эрланговые правда

Ayrat
14.06.2018
17:56:40
Я думаю это почти идеальная схема для подобной задачи. Ну я лучше не знаю.

Kir
14.06.2018
17:56:59
риак, crdt . гдето видел доклад - до 500 тыщ реквестов в секунду у них там

Roman
15.06.2018
04:34:49
Привет!

#task_101 Публикуем ваши варианты решений. Хочу отдельно отметить @tvolf, он - единственный, кто прислал решение с помощью алгоритма Бойера—Мура. Кстати, для тех кто устал от питона, в нашей подборке появился новый язык, это F#. Так что смотрим разбор! http://telegra.ph/Task-101-1-Mazhoritarnyj-ehlement-massiva-06-15

Evgeniy
15.06.2018
07:16:21
Что это?

Roman
15.06.2018
07:17:05
Это канал с задачами

И там вон кто-то на фшарпе написал

Вот задача

#announcement #task_101 Устали от скучной теории и математики ?! Вот задачка чисто по программированию, разомнитесь ? ? Задача 101: Мажоритарный элемент массива (решение будет в четверг) Дан числовой массив размера N. Необходимо найти мажоритарный элемент, если такой существует, ктр встречается в массиве более чем [N / 2] раз (округление в меньшую сторону). Входные данные: arr - числовой массив размера N, где N от 1 до 10000. Элементы массива - любые действительные числа. Вывод: вывести мажоритарный элемент массива, если такой существует, иначе сообщение о его отсутствии. Пример: arr = [1, 2, 3, 4, 1, 1, 1] Answer = 1

Но в f# зачем-то используется Nullable вместо Option

Evgeniy
15.06.2018
07:20:28
@rustem_b ^

Bonart
15.06.2018
07:21:14
И если не хочешь лишних аллокаций в куче...

Google
Evgeniy
15.06.2018
07:21:59
И если не хочешь лишних аллокаций в куче...
Воу, воу, там просто маленькие задачки.

Roman
15.06.2018
07:25:16
Там вместо Bag можно по-моему использовать Map

Vasily
15.06.2018
07:25:20
А groupby там не катит, кстати?

Или там ограничения по памяти типа?

Roman
15.06.2018
07:25:41
Вот я тоже подумал

Vasily
15.06.2018
07:26:41
Тогда однострочник

Seq.groupby try find map

Evgeniy
15.06.2018
07:33:49
Ну, однострочник не получится.

let tryFindMajorityElement (arr: int list) = let n = arr.Length arr |> List.countBy id |> List.tryFind (fun (element, count) -> count > n / 2) |> Option.map fst

Самое короткое, что у меня получилось.

@rustem_b ^

Vasily
15.06.2018
07:34:59
Кстати тоже вариант хороший

В целом, можно ещё через max

Попробовать

Ищем максимальный повтор, сравниваем с половинной длиной

Хотя мажоритарный элемент единственный по определению

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