利用Clojure统计代码文件数量和代码行数
1 ;; 引入clojure的io包 2 (use '[clojure.java.io]) 3 4 ;; 遍历目录将所有符合要求的文件做为列表返回 5 (defn walk [dirpath pattern] 6 (doall (filter #(re-matches pattern (.getName %)) 7 (file-seq (file dirpath))))) 8 9 ;; 将检索出的php文件列表保存到filted-files 10 (def filted-files (walk "z:/wwwroot" #".*\.php")) 11 12 ;; 统计文件数量 13 (count filted-files) 14 15 ;; 统计代码行数 16 (apply + (map #(count %) 17 (map #(line-seq (reader (.getPath %))) 18 filted-files)))