@Fsharp_chat

Страница 112 из 772
Alexey
10.05.2017
14:36:05
Делаешь фримонаду для http и потом интерпритатуешь используя httpclient

Достаточно функционально

Главное что наружу мутабл стейт не торчит нигде

Nikolay
10.05.2017
14:37:00
Я ещё не выучил слово "фримонады"

Google
Nikolay
10.05.2017
14:37:04
Так что не нужно мне тут

Делаешь фримонаду для http и потом интерпритатуешь используя httpclient
А в этом случае сам клиент как аргумент передаётся?

Откуда он вообще браться будет

Evgeniy
10.05.2017
14:38:08
Главное, болл на хилл не забыть зафорсить. :)

Igor
10.05.2017
14:40:01
Делаешь фримонаду для http и потом интерпритатуешь используя httpclient
Но зачем? Что бы мешать pure + “абстрагированными” сайд эффектами, ты же потом настрадаешься с тестами, нужен будет интерпретатор тестовый. Это как IO монада в хаскель, один раз вернул и все - весь вызывающий код в ней испачкался.

А если надо будет миксовать с др фримонадами, так это же придется трасформаторы писать.

Alexey
10.05.2017
14:41:13
Я шучу

?

Igor
10.05.2017
14:43:29
Я шучу
ОК, меня эта тема просто задела чютка ??

Alexey
10.05.2017
14:45:03
А Suave.IO не завели поверх dotnet core разве?

Roman
10.05.2017
14:57:16
А Suave.IO не завели поверх dotnet core разве?
завели вроде, по крайней мере Suave over Kestrel есть

Vasily
10.05.2017
15:12:40
Кстати

Коллеги

Google
Vasily
10.05.2017
15:12:46
Вопрос

Как сделать OneOf groupby?

Т.е. есть два параметра

Сгруппировать айтемы, если хотя бы один совпадает

да, я знаю, что я наркоман

Alexey
10.05.2017
15:14:31
Что тогда, будет ключом группировки?

Vasily
10.05.2017
15:14:39
Пара значений

Arseniy
10.05.2017
15:23:49
Пара значений
берешь GroupBy из линку и суешь ему собственный компаратор. который на гетхэшкод вертает константу, а в эквивалентности проверяет совпадение одного из параметров

но это очень криво, конечно

Vasily
10.05.2017
15:26:10
В целом кривовато,да

Я, походу, вопрос неправильно ставлю

Мне нужно в теории множество значений разбить на на n категорий

Чисто чтобы понять, что творится

В наборе данных

Roman
10.05.2017
15:29:50
Alexey
10.05.2017
15:40:18
https://gist.github.com/Badmoonz/543a8d50720fc5515b52abd17fb3f303

Vasily
10.05.2017
15:42:28
k-means?
А поконкретнее?

Roman
10.05.2017
15:42:45
А поконкретнее?
Ты используешь k-means?

Vasily
10.05.2017
15:43:02
Термин слышу впервые

Можно назвать кластеризацией, да

Google
Vasily
10.05.2017
15:43:57
Но тут скорее про то, что в следующие кластера попадает только то, что не попало в предыдущие

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

Klei
10.05.2017
15:56:04
Т.е. у меня есть последовательный набор предикатов, по которым я хочу сплитить
Я правильно понимаю, что все это можно грубо выразить последовательностью partition?

Vasily
10.05.2017
15:56:12
Угу

Партишнов над кортежами в общем случае

Т.е. сначала надо сгруппировать по дубликатам, сделать партишн

Мда, голова с недосыпа не работает

Arseniy
10.05.2017
16:00:43
я просто не понимаю поставноку задачи. если у тебя есть ф-ции вида TItem -> TK1, TItem -> TK2, ... TItem -> TKN и надо разбить по ним, то это тоже самое что сгрупировать по кортеж k1 * k2 ... * kn

Vasily
10.05.2017
16:01:21
У меня есть список неких значений, надо выявить аномалии

Значение состоит из верхней границы, нижней и имени

Klei
10.05.2017
16:02:16
let rec partitionClasterisation (predicates: ('a -> bool) seq ) (items : 'a seq) : 'a list list = Сигнатура такая?

Vasily
10.05.2017
16:02:28
Да, похоже

Vasily
10.05.2017
16:02:59
Как раз о такой функции думал

Pig
10.05.2017
16:07:54
Принято писать типы аргументам функций или потому что без тела?

Vasily
10.05.2017
16:09:25
Лучше писать, ибо понятнее

Klei
10.05.2017
16:17:31
let partitionClasterisation (predicates: ('a -> bool) seq ) (items : 'a seq) : 'a list list = let firstState = [fun _ -> true] |> Seq.append predicates |> Seq.mapi (fun index predicate -> index, (predicate, [])) |> Map.ofSeq let folder map item = map |> Map.toSeq |> Seq.find (fun (_, (predicate, _)) -> predicate item) ||> fun index (predicate, items) -> Map.add index (predicate, item :: items) map items |> Seq.fold folder firstState |> Map.toSeq |> Seq.map (snd >> snd >> List.rev) |> List.ofSeq [1..20] |> partitionClasterisation [ fun p -> p % 10 = 0 fun p -> p % 5 = 0 fun p -> p % 2 = 0 ]

От Map стоит избавиться чем-нить типа ImmutableList.

И rec не нужен оказался.

Google
Igor
10.05.2017
16:43:24
Тут в ReactNative чате посоветовали https://facebook.github.io/reason/ смотрел кто?

Arseniy
10.05.2017
16:46:36
https://pbs.twimg.com/media/C_eoKIkWAAAmnVT.jpg:large

Evgeniy
10.05.2017
16:52:49
@angmarr OCaml с другим синтаксисом. Близко не смотрел.

Arseniy
10.05.2017
16:53:35
М?
студия 2017 обновилась.

Nikolay
10.05.2017
16:54:00
Klei
10.05.2017
16:54:42
Что-то они в этот раз быстро до 2 версии дошли.

Igor
10.05.2017
16:54:57
студия 2017 обновилась.
Ну так Microsoft Build идет, там еще VSforMac обновилась (странно что не VSCode)

Admin
ERROR: S client not available

Alexey
10.05.2017
17:07:44
/stat@combot

Roman
10.05.2017
17:08:23
/stat@combot
В описании группы есть ссылка)

Igor
10.05.2017
17:09:36
Мне нравится, я бы юзал.
Пробую сейчас, отпишусь потом

Evgeniy
10.05.2017
17:09:46
@neftedollar @angmarr И я бы юзал, если бы была нормальная поддержка Windows. :(

Roman
10.05.2017
17:09:59
Пробую сейчас, отпишусь потом
у меня была проблема в том чтоб использовать ее в винде, так и не попробовал.

Igor
10.05.2017
17:10:32
@neftedollar @angmarr И я бы юзал, если бы была нормальная поддержка Windows. :(
Бедные вы мои ? (надо на линукс/macos переходить - все таки core и все дела)

Roman
10.05.2017
17:11:39
Бедные вы мои ? (надо на линукс/macos переходить - все таки core и все дела)
на ноуте линь, но сейчас проект под винду так что сижу под ней.



Axm
10.05.2017
17:13:46
красивее стала, но справа в окошке постоянно мыло (впф?) в коде

Google
Igor
10.05.2017
17:19:41
А на маке бесит, что там все в отдельных окна, каждый репозиторий и список репозиториев (имхо на винде удобнее)

Evgeniy
10.05.2017
17:26:18
О, вместе с обновлениями студии, еще обновление F# тулинга пришло.

Pig
10.05.2017
17:26:33
Новая версия fsharp-mode?

Почему вы выбираете F#, что бы писать в функциональном стиле?

Vasily
10.05.2017
17:30:33
Ну дотнет жеж

Мне в силу инерции уже тяжело платформу менять

Опять же красивый и лаконичный язык

Pig
10.05.2017
17:32:28
Почему в стандартной библиотеке так мало функциональных комбинаторов?

Vasily
10.05.2017
17:32:53
А каких не хватает?

Базис вроде весь

Pig
10.05.2017
17:33:15
const например

Vasily
10.05.2017
17:33:21
Есть

List.Cons

Тьфу

Шо есть const?

Literal?

Pig
10.05.2017
17:34:24
const x y = x

Vasily
10.05.2017
17:34:51
И что оно должно делать?

Alexey
10.05.2017
17:35:55
Игнорить второй аргумент

Pig
10.05.2017
17:36:37
Что бы не писать fun _ -> someValue

Artemy
10.05.2017
17:37:20
В FSharp.Extras точно есть эта функция. Только konst называется.

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