
Mansur
21.02.2017
20:29:03

Ilya
21.02.2017
20:29:11
Да
С теорией типов у меня мир ?

Alexander
21.02.2017
20:33:12
/o

Google

Ilya
21.02.2017
20:35:04

Alexander
21.02.2017
20:36:28
эм.. а разве эт неочевидно?

Ilya
21.02.2017
20:36:42
Как только дошло

Misha
21.02.2017
20:36:58
+SafeCopy
в продолжение и дабы разбавить ужасы bottoma: а это сделано поверх distributed-process c какой-то кастомной сериализацией или вы определяете data Message = Message ByteString?

Alexander
21.02.2017
20:36:58
сорри я не думал, что это дополнять надо

Misha
21.02.2017
20:37:15
или на более низком уровне?

Alexander
21.02.2017
20:37:30
на уровне distributed process

Misha
21.02.2017
20:37:48
то есть там можно плагинить свою сериализацию?

Alexander
21.02.2017
20:37:50
ну у нас есть data Message = Message StablePrint ByteString

Misha
21.02.2017
20:38:08
а оверхед на копирование?
ну типа один массив байтов в другой
или это ерунда

Google

Alexander
21.02.2017
20:41:21
там writev подиее не должно быь большой проблемой при больших размерах

Misha
21.02.2017
20:42:49
опа
то есть сериализатор использует writev?
в смысле сериализует сразу в сокет?
или я туплю
а, ясно

Alexander
21.02.2017
20:45:57
оно в lazybytestring сериализует который куски байтострок
и потом writev в сокет
что кстати не круто если оно не упаковывает мелкие куски в одну строку
мы вроде как-то это обходили

Misha
21.02.2017
20:49:21
ага, ясно

? animufag ?
21.02.2017
20:52:02

Misha
21.02.2017
20:58:03

Alexander
21.02.2017
20:58:20
это наш тип

Misha
21.02.2017
20:58:29
а, ок

Kit
21.02.2017
21:04:22
кажется они вернулись

Ilya
21.02.2017
21:04:55
Может Джон просто поздоровался? Привет, Джон

Alexander
21.02.2017
21:05:02
поздно

Ilya
21.02.2017
21:05:04
Пока

Alexander
21.02.2017
21:05:15
пеппа конечно хорошо, но не настолько

Google

Kit
21.02.2017
21:06:05

Misha
21.02.2017
21:22:55
а вот еще вопрос: какую лучше всего структуру использовать под небольшое множество строк, в которое надо изредка что-то добавлять и удалять и гораздо чаще делать запросы типа "дай мне случайный элемент" или "дай мне элемент по принципу round-robin"
я чо-то много вопросов задаю
с другой стороны, кому-то будет полезно
понятно, что можно список и рандомный индекс
но вдруг есть что-то красивое

Quet
21.02.2017
21:24:31
vector?

Kit
21.02.2017
21:24:43
Ну видимо такую в которой время обращения к элементу будет O(1) из таких структур я только Vector знаю

Quet
21.02.2017
21:24:57
у вектора O(1)

Kit
21.02.2017
21:25:06
я опечатался

Quet
21.02.2017
21:25:16
ок )

Kit
21.02.2017
21:25:28
извините )

Misha
21.02.2017
21:27:31
можно вектор
люди вот так извращаются http://stackoverflow.com/questions/7349080/select-random-element-from-a-set-faster-than-linear-time-haskell

Quet
21.02.2017
21:30:38
эм.. а в Set линейное время?
херовый такой Set

Kit
21.02.2017
21:31:34
я думалв Set нет порядка

Misha
21.02.2017
21:31:43
не, это типа выбрать случайный элемент быстрее чем линейно

Kit
21.02.2017
21:31:46
но я не работал в ним ))

Misha
21.02.2017
21:32:19
такой примерно select * form t order by rand() limit 1;

Google

Quet
21.02.2017
21:32:37
это скорее выбрать из списка
с фулл сканом

Misha
21.02.2017
21:32:48
вот если есть конструкция похожая на order by rand было бы круто
а неважно, limit 1 же
в хаскеле на первом же и остановится

Admin
ERROR: S client not available

Quet
21.02.2017
21:33:24
угу, но линейное время ты получишь

Misha
21.02.2017
21:35:04
это, в общем-то, не страшно, скорость тут ни на что не повлияет, мне просто неохота дурацкий код писать

Kit
21.02.2017
21:36:50
а что за принцып round-robin?

Misha
21.02.2017
21:37:25
каждый выбираем по одному разу по очереди

Kit
21.02.2017
21:37:37
Если эта структура имеет фиксированную длину, то лучше вообще использовать кортеж
фиксированную длину < 10
вроде говорилось, что структура маленькая

Quet
21.02.2017
21:38:32
пусть берет вектор спокойно

Kit
21.02.2017
21:38:48

Quet
21.02.2017
21:39:05
завтра понадобится 20 элементов
или 100

Kit
21.02.2017
21:39:30
так я же говорю, если структура фиксированная

Google

Quet
21.02.2017
21:39:43
а главное
зачем кортеж?
ну если не устраивать тот самый онанизм на типах?

Kit
21.02.2017
21:40:12
у него время обращения норм
при частых запросах вкатит
а если запросы не частые в малых структурах можно и обычные списки использовать

Quet
21.02.2017
21:40:56
как ты из тупла возьмешь n-й элемент? (n - рандом)

Kit
21.02.2017
21:41:33
до 10 элемента есть встроенная функция (библиотеку не помню)

Quet
21.02.2017
21:42:13
какая сигнатура у этой функции?

Kit
21.02.2017
21:42:16
в смысле случайный доступ, индекс обращения все равно будет самостоятельно через random считаться

Quet
21.02.2017
21:42:43

Kit
21.02.2017
21:43:24
а что такое случайный доступ?

Quet
21.02.2017
21:43:49
https://en.wikipedia.org/wiki/Random_access

Misha
21.02.2017
21:43:51
vector[random(0, vector.size)]

Quet
21.02.2017
21:43:56
как можно советовать что-то про структуры блин )

Misha
21.02.2017
21:44:06
"случайный" в этом смысле
типа дай мне какой-нибудь элемент, который вероятнее всего не повторялся в предыдущий раз