function - 如何在 Clojure 中对字符串向量进行双重循环?

标签 function loops vector clojure nested

我有这个功能,可以检查 csv 文件中的城市人口是否超过 500000。 我将所有找到的城市保存到一个向量中,但现在想在向量上循环两次以找到彼此靠近的城市对(小于 500 公里)(我已经有一个检查两个城市是否接近的功能) 这是我目前所拥有的:

(defn closest-city-pairs []
  (with-open [rdr (reader)]
    (vec
      (for [line (drop 1 (line-seq rdr))
            :let [y (string/split line #",")]
            :when (= true (large(y 0)))]
        (let [newVec (conj [] (y 0))]
          (for[x newVec
               y newVec
               :when (= true (close x y))]
            (let [newNewVec (conj [] (x y))]
              (println newNewVec))))))))

它似乎不想打印,但我的逻辑和所有括号似乎都有意义且井井有条?任何帮助都会很棒

最佳答案

(require '[clojure.math.combinatorics :as comb])
(require '[clojure.data.csv :as csv])

(with-open [r (io/reader "cities.csv")]
        (let [cities (->> (csv/read-csv r) (into [] (comp cat (filter large-city?))))]
            (filter close-to-each-other? (comb/combinations cities 2))))

关于function - 如何在 Clojure 中对字符串向量进行双重循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58869811/

相关文章:

r - 如何将概率插入矩阵?

r - 带有索引向量的子集列表

vector - 如何在 Jetpack Compose 中设置矢量图标资源的色调?

javascript - jQuery 中使用 bind() 和each() 分配事件处理程序的区别?

java - 错误地使用for循环

C typedef 结构的类型冲突

java - 打印为 2D Java 的一维数组

linux - Loop on Unix,几何图形的基本计算器

Ruby - 如何从字符串中选择一些字符

css - LESS css : trying to use the red, green, and blue函数获取rgb值然后插入渐变