Вы можете получить то, что хотите, используя mapcat
.Я полагаю, что включение его в реальный набор Clojure приведет к его деазилизации, о чем свидетельствует тот факт, что (take 10 (set (iterate inc 0)))
пытается реализовать весь набор до получения 10.
(distinct (mapcat get-origlabels (range *song-count*)))
Это даст вамленивая последовательность.Вы можете убедиться в этом, выполнив что-то вроде, начиная с бесконечной последовательности:
(->> (iterate inc 0)
(mapcat vector)
(distinct)
(take 10))
В результате вы получите последовательность, а не набор, но так как это звучит так, как будто вы действительно хотите лень здесьдумаю, что это к лучшему.