■ このスレッドは過去ログ倉庫に格納されています
【Lisp】プログラミング言語 Clojure #3【JVM】
- 982 :デフォルトの名無しさん:2016/04/10(日) 19:20:05.21 ID:/2z8tz0e.net
- 少しお尋ねしたいことがあります。
(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を使わないとなるとこれしかないのかな
総レス数 1013
279 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★