@haskellru

Страница 207 из 1551
Mansur
21.02.2017
20:29:03
Вот. Херня!
В haskell, а не в теории типов

Ilya
21.02.2017
20:29:11
Да

С теорией типов у меня мир ?

Alexander
21.02.2017
20:33:12
/o

Google
Ilya
21.02.2017
20:35:04
В теории типов bottom это пустой подтип любого типа, но в hs я видел запись в учебнике data Int = undefined | Int#, и пусть меня первым бросит камень тот, кто назовет это чудо-юдо слева от "|" типом
О, вот что придумал. В теории типов не делают различия между вычислением, которое моментально возвращает "ошибку" (head []) и вычислением, которое выполняется бесконечно долго (length $ repeat 1), потому что в теории типов нет времени ? Просто либо что-то возвращает, либо нет. Всё, кажется утряслось.

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
есть следующее правило типизации: для любого типа T тип Bottom является подтипом T (Bottom :< T)
ну да, найс. Правда немного неясен профит приписывать тип боттом для невычислимых функций. у таких функций с типом ведь всё в порядке.

Misha
21.02.2017
20:58:03
ну у нас есть data Message = Message StablePrint ByteString
может StablePtr? про StablePrint ни разу не слышал

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
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 считаться

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
"случайный" в этом смысле

типа дай мне какой-нибудь элемент, который вероятнее всего не повторялся в предыдущий раз

Страница 207 из 1551