
Alexey
10.05.2017
14:36:05
Делаешь фримонаду для http и потом интерпритатуешь используя httpclient
Достаточно функционально
Главное что наружу мутабл стейт не торчит нигде

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

Google

Nikolay
10.05.2017
14:37:04
Так что не нужно мне тут
Откуда он вообще браться будет

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

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

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

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

Roman
10.05.2017
15:42:45

Vasily
10.05.2017
15:43:02
Термин слышу впервые
Можно назвать кластеризацией, да

Google

Vasily
10.05.2017
15:43:57
Но тут скорее про то, что в следующие кластера попадает только то, что не попало в предыдущие
Т.е. у меня есть последовательный набор предикатов, по которым я хочу сплитить

Klei
10.05.2017
15:56:04

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

Nikolay
10.05.2017
16:52:19

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

Admin
ERROR: S client not available

Alexey
10.05.2017
17:07:44
/stat@combot

Roman
10.05.2017
17:08:23

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

Roman
10.05.2017
17:11:39

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 называется.