The patter I mention would be something like:
(defn f [x] (lazy-seq (cons x (f (tx x)))))
This would use the call stack because the recursive call can’t use the
recur function as it is not in tail position.
But what actually is trying to do is to generate a lazy infinity sequence of repeated transformations on an initial value (or seed).
What would be an alternative to achieve the same goal (lazy-seq) without using the call stack?