я играю с QuickCheck, и наткнулся на какой-то странное поведениеСоздать генератор элементов с бесконечным списком
sample $ elements [1..5]
работает, как и ожидалось, однако
sample $ elements [1..]
зависаний в GHCI, даже при использовании конечный тип, такой как Int
sample $ elements [(1::Int)..]
Почему не распечатать произвольный (р не предназначенный :) большой Int
s?
Update
Я проверил @ explanantion amalloy путем использования
sample $ elements ([1 .. ] :: [Int8])
который не прекращается.
Спасибо, почему он «достигает длины/2 элемента» в среднем? – dimid
Я имею в виду, подумайте об этом. В списке с элементами 'N', каков средний индекс? Середина - это среднее значение, и оно находится в индексе 'N/2'. Поскольку вы выбираете единообразно случайным образом, ваш средний индекс будет средним индексом списка. – amalloy
Правильно, но зачем вам нужно проходить первые предметы '[len/2] - 1'? Если вы знаете максимальный 'Int', вы можете получить его в O (1), разделив 2. Извините, если мне не хватает чего-то очевидного, я начинаю с haskell. – dimid