如何在Clojure中打印一个数字列表,每行有5个数字?

时间:2014-12-30 14:19:42

标签: clojure

假设我有这个素数列表(总共100个):

(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541)

我想在行中打印它们,每行5个数字:

( 2  3  5  7 11 
 13 17 19 23 29 
 31 37 41 43 47 
....

(请注意,列中的数字是右对齐的。)

1 个答案:

答案 0 :(得分:1)

这是基于上面的另一个答案。

(require '[clojure.string :as string])

user=> (println
        (str \(
             (string/join "\n "
                          (map #(apply format "%3d %3d %3d %3d %3d" %)
                               (partition 5 primes)))
             \)))

(  2   3   5   7  11
  13  17  19  23  29
  31  37  41  43  47
  53  59  61  67  71
  73  79  83  89  97
 101 103 107 109 113
 127 131 137 139 149
 151 157 163 167 173
 179 181 191 193 197
 199 211 223 227 229
 233 239 241 251 257
 263 269 271 277 281
 283 293 307 311 313
 317 331 337 347 349
 353 359 367 373 379
 383 389 397 401 409
 419 421 431 433 439
 443 449 457 461 463
 467 479 487 491 499
 503 509 521 523 541)