【Lisp】プログラミング言語 Clojure #3【JVM】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0970デフォルトの名無しさん
2016/04/10(日) 19:20:05.21ID:/2z8tz0e(def coll (range 100) )
(loop [x coll r [] ] (if (not= x nil) (recur (next x) (cons (first x) r) ) r))
としたときにxはシーケンスcollを走査しますが、
xが以前操作した任意の数n個のデータにアクセスしたいというとき
具体的には xが55を指しているときにそれ以前の54,53,52,51 ... 45 (ここではn=10とした)
にアクセスしたいのですが、エレガントな方法ってあるでしょうか。
自分が思いついた方法
1.partitionにシーケンスを食わせてからloopに突っ込む
しかしできればloop recur内で生成したい。
2.drop take を使ってcollをloop内で刻む
partitionを使わないとなるとこれしかないのかな
レス数が950を超えています。1000を超えると書き込みができなくなります。