Clojure で拡張子によりファイルをリストアップする
2010年05月30日
Clojure で、ディレクトリ内のファイルをリストアップして、結果のシーケンスから拡張子によるフィルタリングを行い、任意の拡張子から成るファイルのシーケンスを作り出す。
(import '(java.io File)) (use '[clojure.contrib.str-utils :only (str-join)]) ;; 拡張子文字列を受け取り、正規表現パターンを返す (defn make-regexp [ext] (java.util.regex.Pattern/compile (str ".*\\." ext "$"))) ;; 拡張子文字列を受け取り、ディレクトリ内のファイルのシーケンスを返す (defn list-files-by-ext [ext] (filter #(re-seq (make-regexp ext) %) (map #(.getName %) (.listFiles (File. ".")))))
実行結果
user=> (list-files-by-ext "clj") ("index-of-any.clj" "type-hint.clj" "flow-controls.clj" "isoverten.clj" "exception.clj" "sample.clj" "create-java-class-with-clojure.clj" "var-bindings.clj" "list-files-by-ext.clj")
プログラミングClojure
posted with amazlet at 10.05.19
Stuart Halloway
オーム社
売り上げランキング: 8244
オーム社
売り上げランキング: 8244