Если вы решаете проблемы с Project Euler, я не хочу портить вам это упражнение, но вот как вы бы определили последовательность Фибоначчи, чтобы lazy-seq продолжал «обновляться» сам по себе:
(defn fib-maker
([] (concat [0 1] (fib 0 1)))
([a b] (lazy-seq (cons b (fib b (+ a b))))))
(def fib (fib-maker))
Я использовал описанный выше подход для реализации последовательности простых чисел, которую вы обрисовали в общих чертах выше, поэтому, если вы хотите больше подробностей, дайте мне знать. Между тем, надеюсь, это будет полезным советом.