獲取數字的每個數字並將它們放入序列中的習慣用法是什麼?獲取數字的每個數字的習慣方式
目前我正在做
(map #(Integer/parseInt %) (map str ((comp seq str) 123456)))
,這是有點難看......
任何想法?
獲取數字的每個數字並將它們放入序列中的習慣用法是什麼?獲取數字的每個數字的習慣方式
目前我正在做
(map #(Integer/parseInt %) (map str ((comp seq str) 123456)))
,這是有點難看......
任何想法?
(for [n (str 123456)]
(- (byte n) 48))
如何:
(defn digits
[x]
(if (< x 10)
[x]
(conj (digits (quot x 10))
(rem x 10))))
user=>(digits 123456)
[1 2 3 4 5 6]
我覺得這是很好的懶序列寫這篇文章,即使你不能真正使用的懶惰,因爲你從「錯誤」最終構建它:
(defn digits [x]
(rseq (mapv #(rem % 10)
(->> x
(iterate #(quot % 10))
(take-while pos?)))))
如果你想要的話,你可以寫一個不使用mapv或rseq的數字*,並且延遲地以倒數的順序返回數字。
(map #(Character/getNumericValue %) (str 123456))
聽起來像是有人在工作的一個PCG謎:) – SirBraneDamuj
呃......什麼是PCG的難題? :) – albusshin
http://codegolf.stackexchange.com/questions/25003/sort-a-number-sorta – SirBraneDamuj