【发布时间】:2013-09-29 19:19:22
【问题描述】:
假设我想让用户逐行输入矩阵。 所以我先问矩阵的大小, 那么我想询问用户输入行,提示“第 1 行”“第 2 行”等。
要做的最简单的事情似乎是拥有一个可变向量并使用诸如doseq之类的somethinkg对其进行变异。
但我很好奇是否还有其他 clojure 方法可以做到这一点。
我最初的想法是使用for 或map。但它很懒所以无法打印出提示。
所以像(map (fn [i] (do (printf "row %d \n" i) (read-line))) (range size)) 这样的东西也会在结果列表中包含提示。
然后我想我可以使用宏来生成类似的东西
[((println "row i") (read-line))
((println "row i") (read-line))
((println "row i") (read-line)) ...]
无论如何我可以在没有宏或可变变量的情况下做到这一点吗? 哪种方式更好?
【问题讨论】:
标签: clojure