小编use*_*799的帖子

在clojure中映射懒惰

我正在Clojure中构建一个简单的swing GUI.我试图通过在let的上下文中使用map将单个函数应用于多个GUI组件:

(map #(f % component4) [component1 component2 component3])

组件全部在let中定义.

有问题的是,map是懒惰的,并且动作不会应用于组件,但是,我可以通过将上面的内容包装在"take"中来强制它.

有地图的非懒惰替代方案吗?或者我应该以不同的方式解决这个问题?

编辑:在eclipse中使用逆时针方向.我使用REPL中的(使用'Lib:reload)并使用编辑器中的CTRL + Enter获得了不同的结果.重新加载会启动GUI,但会出现上述问题.从编辑器使用CTRL + Enter时没有出现问题,因此我认为我对问题的描述可能不准确.无论如何,在这种情况下,doseq似乎是更好的替代方案.

swing clojure map lazy-evaluation

6
推荐指数
2
解决办法
980
查看次数

标签 统计

clojure ×1

lazy-evaluation ×1

map ×1

swing ×1