我是 Clojure 和函数式编程的新手。我想创建一个包含 100,000 个键的列表,格式为:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
我做这样的事情:
(defn get-key [chunk-size, key-length]
(apply str
(flatten
(interpose "-"
(partition chunk-size
(take key-length
(repeatedly #(rand-nth "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"))))))))
(defn dump-keys [n, chunk-size, key-length]
(with-open [wrt (io/writer "keys.txt")]
(doseq [i (range n)]
(.write wrt (str (get-key chunk-size key-length) "\n")))))
哪个生产
KYFL0-7YO6J-30XMV-ZIGE7-MK009
MNQZH-K7L8I-35C0K-7DS7Q-OTZWI
MVB9D-GHME9-IMGCL-YPAKX-4YZVD
... etc
但是,它需要大约 5 秒,与类似的命令式算法相比,这相对较长。
什么被认为是做我想做的事情的惯用(和快速)方式?