Здравствуйте, thesz, Вы писали:
T>Бесконечный список можно заменить на любую другую бесконечную структуру, это несложно.
А разреженный список как сделать без State?
Я так понимаю,
results = map f [1..]
x = (results !!) $! 10000
Немедленно родит заготовку списка из 10000 конструкторов (
, содержащих 9999 ленивых f$k, 1 вычисленное f$!10000 и 1 ленивое map f [10001..]
T>Добавлю, что rand с типом rand :: RndState -> (Int,RndState) может быть сконвертирован в бесконечный список псевдослучайных чисел типа Int, с которым работать достаточно удобно, например, обычной сверткой.
Задумался над тем, как унифицировать монады State и List применительно к рандому.
... << RSDN@Home 1.2.0 alpha rev. 655>>