Was ist der richtige Begriff für das folgende funktionale Programmiermuster?

Ich habe gehört, dass es als @ bezeichnStro, als unendliche Liste, und manchmal auch alslazy sequence.

Was ist der richtige Begriff für das folgende Muster? (Clojure Code angezeigt)

(def first$ first)

(defn second$ [str]
  (cond
    (empty? str) ()
    true ((first (rest str)))))

(defn stream-builder [next_ n]
  (cons n (cons (fn [] (stream-builder next_ (next_ n))) ())))

(defn stream [str n]
  (cond
    (= 0 n) ()
    true (cons (first$ str) (stream (second$ str) (- n 1)))))

(def odd 
  (stream-builder (fn [n] 
        (+ 2 n))1))

(println (stream odd 23))

> (1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage