map - clojure map 功能急切?

标签 map clojure jvm lazy-evaluation

根据 Mark 很棒的教程页面,“map 函数应用一个给定的函数,该函数将一个参数应用于集合中的每个项目,返回结果的惰性序列”。

然而,当我执行以下操作时:

(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 副作用,而不仅仅是第一个元素!

这里的人怎么了?

最佳答案

已经在 here 中回答了:

as really 32 elements are evaluated at a time


您的范围少于 32 个元素。

关于map - clojure map 功能急切?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5140463/

相关文章:

haskell - map haskell中的最小值

json - Scala 将字符串转换为映射

clojure - GROUP BY和 map 向量上的汇总-Clojure

java - JVM 退出时是否自动释放 native 屏幕资源?

java:字节码中的字符串concat转换为StringBuilder

javascript - 在 Javascript 的一次迭代中进行映射和排序?

java - 通过索引检索 Map 的键

optimization - Clojure 有短路逻辑吗?

clojure - 困惑: Clojure for loop with :while -> unexpected behaviour?

Linux 上 JavaFX 无法解释的内存泄漏