我想用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]))))
但是现在有很多错误。
答案 0 :(得分:1)
类似于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))
答案 1 :(得分:0)
在我的头顶上,您可以执行以下操作:
(map (fn [_] (println (read-line))) (range (Integer/parseInt (read-line))))
这里可能有比地图更合适的内容,请阅读clojure文档。 clojure标准库有很多很棒的东西:)
编辑:@SeanCorfield在评论中提出了一个观点,在这里使用run!是更好的选择,因为我们不在乎map的返回值。
答案 2 :(得分:0)
或者这个...
(repeatedly
(read-string (read-line))
(comp println read-line))