【发布时间】:2010-12-26 22:33:57
【问题描述】:
有很多与此相关的 SO 帖子,但我出于不同的目的再次询问此问题
我试图理解为什么闭包很重要和有用。我在与此相关的其他 SO 帖子中读到的一件事是,当您将变量传递给闭包时,闭包从那时起开始记住该值。这是它的整个技术方面还是那里发生的更多。
我想知道的是,当闭包内部使用的变量从外部修改时会发生什么。它们应该只是常量吗?
在 Clojure 语言中,我可以做到以下几点: 但既然有值是不可变的,这个问题就不会出现。其他语言呢?闭包的正确技术定义是什么?
(defn make-greeter [greeting-prefix]
(fn [username] (str greeting-prefix ", " username)))
((make-greeter "Hello") "World")
【问题讨论】:
标签: functional-programming lisp clojure closures