Я начинаю изучать Haskell с фона Ruby. Я ищу, чтобы быть в состоянии получить произвольное количество элементов из списка:Пример произвольного количества чисел из списка Haskell
sample [1,2,3,4,5,6,7,8,9,10]
=> 7
sample 3 [1,2,3,4,5,6,7,8,9,10]
=> [4,2,9]
Это доступно в Ruby, и я надеюсь получить ту же функциональность. Я не смог найти его после некоторых поисковых запросов, поэтому я решил, что попрошу здесь. Является ли это доступным или это функция, которую я должен был бы реализовать самостоятельно? Благодаря!
это здорово, работает именно так, как я хочу. Я несколько новичок, так что вы могли бы объяснить последнюю строку в методе sample n? Кроме того, почему вы делаете 'idx <- randomRIO (0, l)' вместо 'let idx = ...'? –
похоже, что он рекурсивно вызывает образец в списке, который только что удалил последнее выбранное значение? и как только он опустится до нуля, он возвращает пустой список '[]', завершая процесс. –
Используйте let при связывании чистого значения в результате функции, возвращающей чистые значения.Используйте <- при связывании чистого значения в результате монадического вычисления. –