内容简介:我想知道如何编写很容易理解它是如何工作的,但是我无法在Clojure中重新创建它 – 它不会累积但只返回i的总和和n的初始给定值.关键是incf(在Common Lisp版本中)或=(在JavaScript中).
我想知道如何编写 Revenge of the Nerds 文章中包含的累加器示例.
很容易理解它是如何工作的,但是我无法在Clojure中重新创建它 – 它不会累积但只返回i的总和和n的初始给定值.
关键是incf(在Common Lisp版本中)或=(在JavaScript中).
换句话说:如何改变引用函数的状态?我已经看到了一些关于变量变量的例子,但他们看起来不是 precisely pretty 吗?
不要哎呀!在为时已晚之前保存自己!无缘无故地改变状态不是Clojure所鼓励的,所以当然它不像普通的lisp那样方便.
但严重的是,这是解释闭包的经典示例,虽然它不是Clojure中非常有用的一个,但很高兴知道翻译.你必须写下这样的东西:
(defn foo [n] (let [acc (atom n)] (fn [i] (swap! acc + i))))
翻译自:https://stackoverflow.com/questions/8442524/writing-an-accumulator-function-in-clojure
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux设备驱动程序
科波特 / 魏永明、耿岳、钟书毅 / 中国电力出版社 / 2006-1-1 / 69.00元
本书是经典著作《Linux设备驱动程序》的第三版。如果您希望在Linux操作系统上支持计算机外部设备,或者在Linux上运行新的硬件,或者只是希望一般性地了解Linux内核的编程,就一定要阅读本书。本书描述了如何针对各种设备编写驱动程序,而在过去,这些内容仅仅以口头形式交流,或者零星出现在神秘的代码注释中。 本书的作者均是Linux社区的领导者。Jonathan Corbet虽不是专职的内核......一起来看看 《Linux设备驱动程序》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
HSV CMYK 转换工具
HSV CMYK互换工具