[英]How can i loop through a Collection in Clojure?
我有一个矩阵,我想打印它的行。 我试图像这样实现它,但我不知道如何循环并获取其他元素!
(defn p! [args]
(println (first args))
(drop args))
(p! [[1 2] [3 4]]) --> [1 2]
the output should look like this
;; 12
;; 34
我建议使用core.matrix工具来完成这项任务。 它拥有成熟且久经考验的 API。 除此之外,它还为您提供了一个pm
function,它可以漂亮地打印一个矩阵并接受一个自定义元素formatter
作为参数。
您可能会发现它的实现很有趣,因为它可以让您了解打印类似数组的结构。 (TL;DR:它使用递归算法来处理它,该算法大量使用了dotimes
fn。)
有了这个库,你最终可能会实现你的p!
fn 像这样:
(require '[clojure.core.matrix :as mx])
(defn p! [args]
(mx/pm (mx/matrix args)))
(p! [[1 2] [3 4]])
[[1 2]
[3 4]]
=> nil
如果您想保持简单和/或省略括号,那么最简单的实现将遵循以下几行:
(defn p! [args]
(doseq [row args]
(println (clojure.string/join " " row))))
(p! [[1 2] [3 4]])
1 2
3 4
=> nil
干杯!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.