变量可变性问题
从FP的角度, Clojure中变量是不可变的, 改变一个变量实际是创建一个新的变量 所以所有的change都需要通过参数的不断传递... 如下面的例子, => (defrecord Employee [name room]) backtype.storm.util.Employee => (def emp (Employee. "John Smith" 304)) #'backtype.storm.util/emp => (:name emp) "John Smith" => (assoc emp :room 309) #backtype.storm.util.Employee{:name "John Smith", :room 309} => (println emp) #backtype.storm.util.Employee{:name John Smith, :room 304} Clojure是一个妥协的语言, 不单纯的从FP的角度思考, 也需要从OO的角度思考, 你可以认为这是灵活的体现 所以有时候, 单纯的依赖参数的传递很麻烦...虽然很p...