【发布时间】:2011-03-30 09:55:48
【问题描述】:
我听说它被称为 stream, 被称为 infinite list,,有时甚至被称为 lazy sequence。 em>
以下模式的正确术语是什么? (显示的 Clojure 代码)
(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)
【问题讨论】:
-
我不确定你在问什么。看起来您已经为它找到了 3 个名称。在您看来,什么会使任何答案比这些同义词中的任何其他同义词更“正确”?
标签: functional-programming clojure lisp terminology sequence