функция карты clojure с нетерпением ждет?

Согласно замечательной странице руководства Марка, «функция карты применяет заданную функцию, которая принимает один параметр к каждому элементу в коллекции, возвращая ленивую последовательность результатов».

Но когда Я делаю следующее:

(def input-message-list (range 100 126))

(defn test-123 [in]
  (println "doing " in)
  (str "out " in))

(def output-test (map
                   test-123
                   input-message-list))

(first output-test)

, в REPL я получаю побочные эффекты println для всего диапазона, а не только для первого элемента!

Что здесь происходит, люди?

6
задан Jeremy 28 February 2011 в 16:21
поделиться