可能重复:
需要在Ruby中将数组拆分为指定大小的子数组
我正在寻找一个数组 - 比如说[0,5,3,8,21,7,2] - 然后生成一个数组数组,分成很多地方.如果上面的数组设置为a,那么
a.split_every(3)
Run Code Online (Sandbox Code Playgroud)
将返回[[0,5,3],[8,21,7] [2]]
这是否存在,还是我必须自己实施?
在这里,我检查环境变量CLASSPATH
daniel @ daniel-laptop:〜/ ps/clojure/projects/ring-tutorial $ echo $ CLASSPATH
/ home/daniel/ps/clojure/projects/ring-tutorial/src
在这里,我检查java认为它是什么.
daniel @ daniel-laptop:〜/ ps/clojure/projects/ring-tutorial $ lein repl
Clojure 1.1.0 user =>(System/getProperty"java.class.path")
"src /:classes /:/ home/daniel /.m2/repository/leiningen/leiningen/1.1.0/leiningen-1.1.0-standalone.jar:lib/clojure-1.1.0.jar:lib/servlet-api-2.5-6.1.14.jar:lib/公地-IO-1.4.jar:LIB/CLJ-堆栈跟踪-0.1.0.jar:LIB/Clojure的-的contrib-1.1.0.jar:LIB /环devel的-0.2.0.jar:LIB /码头-util- 6.1.14.jar:LIB/CLJ-HTML-0.1.0.jar:LIB /环码头适配器-0.2.0.jar:LIB /码头-6.1.14.jar:LIB /环形芯-0.2. 0.jar:LIB /公地文件上传-1.2.1.jar:LIB /环servlet的0.2.0.jar:LIB /公地编解码器-1.4.jar:"
如您所见,这两种反应完全不同.我很确定我必须误解我应该在哪里编辑CLASSPATH变量以使java"得到它",除了我发现的所有内容都说这应该有效.那是什么交易?莱宁根是否会产生自己奇怪的叛徒叛变事件?我在编辑一个完全不相关的变量吗?任何帮助非常感谢.
我正在使用Project Euler问题来帮助我学习clojure,而且我遇到了一个我无法弄清楚的异常.nillify和change-all在底部定义以供参考.
(loop [the-vector (vec (range 100))
queue (list 2 3 5 7)]
(if queue
(recur (nillify the-vector (first queue)) (next queue))
the-vector))
Run Code Online (Sandbox Code Playgroud)
这会引发NullPointerException,我无法弄清楚原因.我可以看到可以抛出这样一个异常的代码的唯一部分是对nillify的调用,但是在抛出异常之前看起来似乎队列只有一个元素 - 即使队列是变得空虚,这就是if语句的用途.
有任何想法吗?
"给定一个向量,一个值和一个索引列表,返回一个w/everthing @ indice = value的向量"
(defn change-all [the-vector indices val]
(apply assoc the-vector (interleave indices (repeat (count indices) val))))
Run Code Online (Sandbox Code Playgroud)
"给定一个向量和一个val,返回一个向量,其中索引等于val的倍数的所有条目都是nilled,但保留原始未触及的"
(defn nillify [coll val]
(change-all coll (range (* 2 val) (inc (last coll)) val) nil))
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现神经网络,每个神经元都需要引用其他神经元.我一直试图通过原子实现这个引用.
考虑一下代码
(def neuron1 {:connections [(atom 0)])
(def neuron2 {:connections [(atom neuron1)]})
(update-in neuron1 [:connections 0] #(reset! % neuron2))
Run Code Online (Sandbox Code Playgroud)
最后一次将打击堆栈.
因此,似乎原子包含其内容,而不仅仅是引用它们.
如果我想传递等效的指针,我该怎么办?我是否必须使用某个功能,如
(def neuron1 {:connections [(fn [] neuron2)]})
Run Code Online (Sandbox Code Playgroud)
并调用它,而不是使用原子并解除引用它?