どうやって数字を分割する?
質問者 Geem7n は効率的でない書き方なら出来るんだけど、効率の良い数字を分割する方法を知りたいとのこと。
(->> (str 942) seq (map str) (map read-string)) ;=> (9 4 2) ;; and (defn digits [n] ;YUK!! (cons (str (mod n 10)) (lazy-seq (positive-numbers (quot n 10))))) (map read-string (reverse (take 5 (digits 10012)))) ;=> (1 0 0 1 2)
回答者 vsnyc はもっとシンプルに出来ると言ってます。
(map #(Character/digit % 10) (str 942))
他の回答者 Charles の意見を受けて、数字を文字に変換しないやり方だとこう出来ると
(defn numTodigits [num] (loop [n num res []] (if (zero? n) res (recur (quot n 10) (cons (mod n 10) res)))))