Подтвердить что ты не робот

Каков наиболее сжатый эквивалент Clojure для Ruby Dir.glob()?

Какой самый простой способ сделать что-то подобное в Clojure?

require 'csv'
Dir["data/*.csv"].each do |file|
  File.readlines(file).each do |line|
    x, y, z = *CSV.parse_line(line)
    # process this data
  end
end
4b9b3361

Ответ 2

Возможно, это не самый краткий, но возможно что-то вроде следующего:

(use 'clojure-csv.core)

(doseq [file (.listFiles (File. "data/"))]
  (if (.matches (.getName file) ".*[.]CSV$")
    (doseq [[x y z] (parse-csv (slurp file))]
       "... do whatever stuff you want with x, y, z..."))))

N.B. использует библиотеку clojure-csv.

Это было бы более элегантно и короче, если бы я мог найти очевидный способ получить список фильтрованных каталогов, не прибегая к регулярным выражениям.... но он ускользает от меня на мгновение

UPDATE:

Ссылка Брайана на Поддержка Java для globbing также полезна и интересна и предлагает более общий/надежный подход, чем простые регулярные выражения - однако это зависит на Java 1.7 (слишком передний край для некоторых?), и это не очень сильно сокращает код.