169 похожих чатов

Можно мини ревью? создание последовательности рандомных чисел от 0 до

max
let rec uniqRand set max=
match Set.count set = max with
| true -> None
| false ->
let r = new System.Random()
let i = r.Next max
if Set.contains i set then uniqRand set max
else Some i

let rgen max acc =
match uniqRand acc max with
| None -> None
| Some item -> Some (item, Set.add item acc)

let rand max =
Seq.unfold (rgen max) Set.empty

1 ответов

4 просмотра
Yv-y Автор вопроса

кстати, не лучше тут генерацию числа(r.Next) вынести как аргумент? Ведь каждую вложенность создавать Random такое себе

Похожие вопросы

Обсуждают сегодня

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Скажите, либо я тупой, либо непонятно что. Представьте что в регистре AX = 7FFF (в десятичной системе это число 32767), а в регистре BX = 0FFF (в десятичной системе это -1). У...
Rusplay
19
Ребят, привет. Интересует вопрос: есть ли способ получить доступ к WebView в Linux? Рылся-ковырялся, решения не нашел. Объясню сразу задачу, возможно, скажете, что копаю не в...
advanc3d
13
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
вышел новый лазарус 3.4.0 кто пользовался? что нового? на что обратить внимание? итд
livontiy
22
Здравствуйте, надеюсь найти ответ, при выполнение программы все работает, но добавим на форму элемент, при новом запуске остается то что было до изменения, новой кнопки, разме...
Стивен Хикс
15
Что нового в Xcode 16 Xcode 16 приносит много обновлений. Главное - появление ИИ, которое отметили еще в кейноуте. В Xcode появится предиктивное завершение кода, основанное н...
✌️(´ヮ`)
1
то есть мне надо,как бы, в столбик поделить 1/6=0b1/0b110 и получить двоичное число? тогда я получу наконец то те самые 0x5555555555 ?
Павлик Ливаткин
12
Добрый день. Ни у кого случайно нет примера Си+SDL2 анимации объекта? Не получается реализовать движение ((( Схема такая: SDL_CreateWindow SDL_GetWindowSurface SDL_FillRect ...
8921 *** ** **
9
Приветствую! Созревает желание обновить перловые пакеты в рабочем ПАКе на Oracle Linux 8 (потомок CentOS). Сделать это могут админы, но хотят rpm что бы легко их по всем конте...
Alexander
10
Карта сайта