我想在用python表达时写这样的东西。
a = int(input())
for i in range(a):
b = input()
print(b)
这就是我实际写的。
(let [a][(read-line)]
(for[i (range [a])]
(defn b[string]
(= (read-line) b)
(println [b]))))
但是现在有很多错误。
类似于 Python 流程。
(doseq [_ (range (Integer. (read-line)))
:let [b (read-line)]]
(println b))
更接近Python代码:
(let [a (Integer. (read-line))]
(doseq [i (range a)
:let [b (read-line)]]
(println b)))
更多功能代码
(mapv println (repeatedly (Integer. (read-line)) read-line))
但更惯用(根据肖恩·科菲尔德(
(run! println (repeatedly (Integer. (read-line)) read-line))
或者这个...
(repeatedly
(read-string (read-line))
(comp println read-line))
在我的头顶上,你可以做这样的事情:
(map (fn [_] (println (read-line))) (range (Integer/parseInt (read-line))))
这里可能有一些比地图更合适的东西,请阅读clojure文档。 clojure标准库有很多很酷的东西:)
编辑:@SeanCorfield评论中提出了一个很好的观点,使用运行! 在这里会是一个更好的选择,因为我们不关心 map 的返回值。