Ответ 1
(iterate inc x)
даст вам ленивую бесконечную последовательность чисел, начиная с x
.
В соответствии с docs функция range
имеет четыре формы:
(range)
0 - Бесконечность(range end)
0 - end(range start end)
start-end(range start end step)
шаг за шагом по завершениюИтак, как бы объявить диапазон, представляющий x
для Infinity?
Я также могу спросить, как справиться с бесконечностью, как что-то вроде (range x infinity)
может работать?
(iterate inc x)
даст вам ленивую бесконечную последовательность чисел, начиная с x
.
Как насчет чего-то вроде этого:
(defn my-range
([start] (iterate inc' start))
([start step] (iterate #(+' % step) start)))
Обратите внимание на inc'
и +'
для поддержки произвольной точности.
Как насчет:
(defn range-from [start]
(drop start (range)))