Fork me on GitHub
#clojure-russia
<
2017-06-10
>
kgofhedgehogs17:06:39

Вопрос глупый, но решения я что-то не нагуглил Как можно получить случайный элемент из set? (rand-nth #{1 2 3}) не работает, выпадает ошибка, что операция не поддерживается

razum2um17:06:19

@kgofhedgehogs (-> #{1 2 3} vec rand-nth) set/seq не поддерживают доступ по индексу

kgofhedgehogs17:06:37

Ну раз только так, то ладно 😞

kgofhedgehogs17:06:34

Но они поддерживают random sample. Можно же взять первый элемент из rand-sample?

razum2um17:06:07

что есть rand-sample?

kgofhedgehogs17:06:45

random-sample, опечатался

kgofhedgehogs17:06:34

Не. Это фиговое решение

razum2um17:06:58

ну посмотри на исходник, там вероятностный скип, т.е. вероятность первого элемента зашкаливает

dottedmag18:06:30

shuffle не ленивая, печаль.

dottedmag18:06:05

Потому что там внутри (java.util.Collections/shuffle al), а не K-F-Y shuffle, который можно лениво считать.

artemyarulin18:06:36

ну технически порядок в сете не детерменирован поэтому first вернет элемент с некой случайностью 🙂

dottedmag18:06:17

да, с наименьшим значением хэша.

dottedmag18:06:29

если это не sorted-set

nicola18:06:58

Может сделаем недельный переходящий Твиттер - @clojure-russia или например @recur ? Кто готов первым повести?

nicola18:06:14

Давайте название придумаем

akond18:06:40

@nicola что такое переходящий твитер?

nicola19:06:09

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

just.sultanov19:06:09

по аналогии с backend(frontend)secret - clojure-secret 😄

nicola19:06:58

@transduce занят блин

artemyarulin19:06:16

@skoboshki-madness troll

nicola19:06:03

Вроде @skobki свободно